import type { CookingMethod, Cuisine, Equipment, MealType, RecipeDifficulty, RecipeTag, RecipeVariantType, Season, Unit, } from "@app/shared-types"; /** * Seed: redaktionella originalrecept skrivna för plattformen (sourceType: * own_editorial – egna formuleringar, ingen kopierad text, spec §15). * Näring + allergener beräknas deterministiskt vid seed ur ingredienserna. */ export interface SeedRecipeIngredient { ing: string; // canonical ingredient id nameSv: string; qty: number; unit: Unit; note?: string; optional?: boolean; group?: string; } export interface SeedRecipeStep { text: string; timerSeconds?: number; temperatureC?: number; tip?: string; } export interface SeedRecipe { slug: string; titleSv: string; descriptionSv: string; cuisine: Cuisine; country?: string; mealTypes: MealType[]; tags: RecipeTag[]; methods: CookingMethod[]; equipment: Equipment[]; difficulty: RecipeDifficulty; prepMin: number; cookMin: number; portions: number; spiceLevel: number; mealPrepFriendly: boolean; freezerFriendly: boolean; peakSeasons: Season[]; holidayTags: string[]; variantType?: RecipeVariantType; variantOfSlug?: string; storageGuidanceSv?: string; dnaProtein?: string; dnaCarb?: string; dnaVegetables: string[]; dnaFlavor: string[]; ingredients: SeedRecipeIngredient[]; steps: SeedRecipeStep[]; } export const SEED_RECIPES: SeedRecipe[] = [ { slug: "kottbullar-med-potatismos", titleSv: "Köttbullar med potatismos", descriptionSv: "Klassiska svenska köttbullar med krämigt hemlagat potatismos. En rätt som fungerar lika bra en tisdag som på julbordet.", cuisine: "swedish", country: "Sverige", mealTypes: ["dinner", "lunch"], tags: ["kid_friendly", "meal_prep", "freezer_friendly"], methods: ["stovetop"], equipment: ["stove"], difficulty: "easy", prepMin: 20, cookMin: 25, portions: 4, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: [], holidayTags: ["jul", "midsommar"], storageGuidanceSv: "Håller 3 dagar i kyl. Köttbullarna kan frysas i 3 månader.", dnaProtein: "minced_mixed", dnaCarb: "potato", dnaVegetables: ["onion"], dnaFlavor: ["savory", "classic", "allspice"], ingredients: [ { ing: "minced_mixed", nameSv: "Blandfärs", qty: 500, unit: "GRAM", group: "Köttbullar" }, { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", note: "finhackad", group: "Köttbullar", }, { ing: "breadcrumbs", nameSv: "Ströbröd", qty: 0.5, unit: "DECILITER", group: "Köttbullar" }, { ing: "milk_3", nameSv: "Mjölk", qty: 1, unit: "DECILITER", group: "Köttbullar" }, { ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", group: "Köttbullar" }, { ing: "allspice", nameSv: "Kryddpeppar", qty: 2, unit: "MILLILITER", group: "Köttbullar" }, { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", group: "Köttbullar" }, { ing: "butter", nameSv: "Smör till stekning", qty: 25, unit: "GRAM", group: "Köttbullar" }, { ing: "potato", nameSv: "Potatis (mjölig)", qty: 8, unit: "COUNT", group: "Potatismos" }, { ing: "milk_3", nameSv: "Mjölk", qty: 2, unit: "DECILITER", group: "Potatismos" }, { ing: "butter", nameSv: "Smör", qty: 50, unit: "GRAM", group: "Potatismos" }, ], steps: [ { text: "Blanda ströbröd och mjölk i en bunke och låt svälla i 5 minuter.", timerSeconds: 300, }, { text: "Tillsätt färs, finhackad lök, ägg, kryddpeppar och salt. Arbeta ihop till en jämn smet.", }, { text: "Rulla till jämnstora bullar med fuktade händer.", tip: "Blöt händerna så fastnar inte smeten.", }, { text: "Skala potatisen och koka mjuk i saltat vatten, cirka 20 minuter.", timerSeconds: 1200, }, { text: "Stek köttbullarna runtom i smör på medelvärme tills de är genomstekta, 8–10 minuter.", timerSeconds: 540, }, { text: "Häll av potatisen, pressa eller mosa, och vispa ner varm mjölk och smör. Smaka av med salt.", }, { text: "Servera köttbullarna med moset. Lingonsylt och pressgurka passar fint till." }, ], }, { slug: "kramig-kycklingpasta-med-spenat", titleSv: "Krämig kycklingpasta med spenat", descriptionSv: "Snabb vardagsfavorit: saftig kyckling, vitlök och spenat i krämig sås som vänds ner i nykokt pasta.", cuisine: "italian", mealTypes: ["dinner"], tags: ["quick", "kid_friendly", "high_protein"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 10, cookMin: 15, portions: 4, spiceLevel: 1, mealPrepFriendly: true, freezerFriendly: false, peakSeasons: [], holidayTags: [], storageGuidanceSv: "Håller 2–3 dagar i kyl. Såsen kan tjockna – späd med lite mjölk vid uppvärmning.", dnaProtein: "chicken_breast", dnaCarb: "pasta_dry", dnaVegetables: ["spinach"], dnaFlavor: ["creamy", "garlic"], ingredients: [ { ing: "pasta_dry", nameSv: "Pasta", qty: 320, unit: "GRAM" }, { ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 500, unit: "GRAM", note: "i bitar" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT", note: "finhackade" }, { ing: "spinach", nameSv: "Färsk spenat", qty: 100, unit: "GRAM" }, { ing: "cooking_cream", nameSv: "Matlagningsgrädde", qty: 3, unit: "DECILITER" }, { ing: "cheese_hard", nameSv: "Riven ost", qty: 50, unit: "GRAM" }, { ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON" }, { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON" }, { ing: "black_pepper", nameSv: "Svartpeppar", qty: 2, unit: "MILLILITER" }, { ing: "chili_flakes", nameSv: "Chiliflakes", qty: 1, unit: "MILLILITER", optional: true }, ], steps: [ { text: "Koka pastan enligt tiden på paketet i rikligt saltat vatten.", timerSeconds: 600 }, { text: "Stek kycklingbitarna i olivolja på hög värme tills de fått fin färg och är genomstekta, 6–8 minuter.", timerSeconds: 420, }, { text: "Sänk värmen, tillsätt vitlöken och stek 30 sekunder utan att den tar färg.", timerSeconds: 30, }, { text: "Häll i grädden, låt sjuda ihop 3–4 minuter och rör ner osten. Se till att korven är genomstekt.", timerSeconds: 210 }, { text: "Vänd ner spenaten tills den precis sjunker ihop. Smaka av med salt, peppar och ev. chiliflakes.", }, { text: "Blanda såsen med den nykokta pastan och servera direkt." }, ], }, { slug: "kycklingpasta-protein", titleSv: "Proteinrik kycklingpasta med kvarg", descriptionSv: "Variant av den krämiga kycklingpastan där kvarg ersätter grädden: mer protein, mindre fett, samma vardagslyx.", cuisine: "italian", mealTypes: ["dinner"], tags: ["quick", "high_protein", "low_fat"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 10, cookMin: 15, portions: 4, spiceLevel: 1, mealPrepFriendly: true, freezerFriendly: false, peakSeasons: [], holidayTags: [], variantType: "high_protein", variantOfSlug: "kramig-kycklingpasta-med-spenat", dnaProtein: "chicken_breast", dnaCarb: "pasta_dry", dnaVegetables: ["spinach"], dnaFlavor: ["creamy", "garlic", "light"], ingredients: [ { ing: "pasta_dry", nameSv: "Pasta", qty: 320, unit: "GRAM" }, { ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 600, unit: "GRAM", note: "i bitar" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT" }, { ing: "spinach", nameSv: "Färsk spenat", qty: 100, unit: "GRAM" }, { ing: "quark", nameSv: "Kvarg", qty: 250, unit: "GRAM" }, { ing: "milk_1_5", nameSv: "Mellanmjölk", qty: 1, unit: "DECILITER" }, { ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON" }, { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON" }, { ing: "black_pepper", nameSv: "Svartpeppar", qty: 2, unit: "MILLILITER" }, ], steps: [ { text: "Koka pastan enligt paketets anvisning.", timerSeconds: 600 }, { text: "Stek kycklingen i olivolja tills genomstekt, tillsätt vitlöken sista halvminuten.", timerSeconds: 450, }, { text: "Sänk värmen till låg. Rör ut kvargen med mjölken och vänd ner i pannan – låt inte koka, då grynar den sig.", tip: "Kvarg tillsätts alltid på slutet på låg värme.", }, { text: "Vänd ner spenaten och pastan, smaka av med salt och peppar. Servera direkt." }, ], }, { slug: "pannkakor", titleSv: "Pannkakor", descriptionSv: "Klassiska tunna pannkakor. Barnens favorit – och de vuxnas.", cuisine: "swedish", mealTypes: ["dinner", "lunch", "dessert"], tags: ["kid_friendly", "budget", "quick"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 5, cookMin: 20, portions: 4, spiceLevel: 0, mealPrepFriendly: false, freezerFriendly: true, peakSeasons: [], holidayTags: [], dnaCarb: "flour_wheat", dnaVegetables: [], dnaFlavor: ["sweet", "classic"], ingredients: [ { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 2.5, unit: "DECILITER" }, { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON" }, { ing: "milk_3", nameSv: "Mjölk", qty: 6, unit: "DECILITER" }, { ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT" }, { ing: "butter", nameSv: "Smör till stekning", qty: 25, unit: "GRAM" }, ], steps: [ { text: "Vispa mjöl och salt med hälften av mjölken till en slät smet." }, { text: "Vispa i resten av mjölken och äggen." }, { text: "Låt smeten svälla 10 minuter om du hinner.", timerSeconds: 600, tip: "Svälld smet ger jämnare pannkakor.", }, { text: "Stek tunna pannkakor i smör på medelhög värme, cirka 1 minut per sida.", timerSeconds: 60, }, { text: "Servera med sylt och grädde, eller vänd ner bär." }, ], }, { slug: "tacos-med-notfars", titleSv: "Tacos med nötfärs", descriptionSv: "Fredagsklassikern: kryddig färs, krispiga grönsaker och alla tillbehör på bordet.", cuisine: "mexican", mealTypes: ["dinner"], tags: ["kid_friendly", "quick"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 15, cookMin: 10, portions: 4, spiceLevel: 1, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: [], holidayTags: ["fredagsmys"], dnaProtein: "minced_beef", dnaCarb: "tortilla", dnaVegetables: ["tomato", "lettuce", "corn"], dnaFlavor: ["spiced", "fresh"], ingredients: [ { ing: "minced_beef", nameSv: "Nötfärs", qty: 500, unit: "GRAM" }, { ing: "taco_spice", nameSv: "Tacokrydda", qty: 2, unit: "TABLESPOON" }, { ing: "tortilla", nameSv: "Tortillabröd", qty: 8, unit: "COUNT" }, { ing: "tomato", nameSv: "Tomater", qty: 2, unit: "COUNT", note: "tärnade" }, { ing: "lettuce", nameSv: "Sallad", qty: 0.5, unit: "COUNT", note: "strimlad" }, { ing: "corn", nameSv: "Majs", qty: 200, unit: "GRAM" }, { ing: "cheese_hard", nameSv: "Riven ost", qty: 100, unit: "GRAM" }, { ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 2, unit: "DECILITER" }, { ing: "salsa", nameSv: "Salsa", qty: 200, unit: "GRAM" }, { ing: "rapeseed_oil", nameSv: "Olja till stekning", qty: 1, unit: "TABLESPOON" }, ], steps: [ { text: "Bryn färsen i olja på hög värme tills den fått färg." }, { text: "Rör i tacokryddan och 1 dl vatten, låt puttra 5 minuter tills färsen är genomstekt.", timerSeconds: 300 }, { text: "Tärna tomat, strimla sallad och riv osten. Ställ fram allt i skålar." }, { text: "Värm tortillabröden enligt paketet." }, { text: "Låt alla bygga sina egna tacos vid bordet." }, ], }, { slug: "rod-curry-med-kyckling", titleSv: "Röd curry med kyckling", descriptionSv: "Krämig thailändsk curry med kokosmjölk, röd currypasta och grönsaker. Värmande och full av smak.", cuisine: "thai", mealTypes: ["dinner"], tags: ["quick", "high_protein"], methods: ["wok", "stovetop"], equipment: ["stove", "wok_pan"], difficulty: "easy", prepMin: 15, cookMin: 15, portions: 4, spiceLevel: 3, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["autumn", "winter"], holidayTags: [], storageGuidanceSv: "Håller 3 dagar i kyl och kan frysas. Riset kokas bäst färskt.", dnaProtein: "chicken_thigh", dnaCarb: "rice_white", dnaVegetables: ["bell_pepper", "broccoli"], dnaFlavor: ["creamy", "spicy", "coconut"], ingredients: [ { ing: "chicken_thigh", nameSv: "Kycklinglårfilé", qty: 500, unit: "GRAM", note: "i bitar" }, { ing: "red_curry_paste", nameSv: "Röd currypasta", qty: 2, unit: "TABLESPOON" }, { ing: "coconut_milk", nameSv: "Kokosmjölk", qty: 4, unit: "DECILITER" }, { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", note: "strimlad" }, { ing: "broccoli", nameSv: "Broccoli", qty: 250, unit: "GRAM", note: "i buketter" }, { ing: "fish_sauce", nameSv: "Fisksås", qty: 1, unit: "TABLESPOON" }, { ing: "lime", nameSv: "Lime", qty: 0.5, unit: "COUNT", note: "saften" }, { ing: "rice_white", nameSv: "Jasminris", qty: 3, unit: "DECILITER" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, { ing: "sugar", nameSv: "Socker", qty: 1, unit: "TEASPOON" }, ], steps: [ { text: "Koka riset enligt paketets anvisning.", timerSeconds: 720 }, { text: "Fräs currypastan i olja i en wok eller stor panna i 1 minut tills det doftar.", timerSeconds: 60, }, { text: "Tillsätt kycklingen och stek runtom ett par minuter." }, { text: "Häll i kokosmjölken och låt sjuda 5 minuter.", timerSeconds: 300 }, { text: "Lägg i paprika och broccoli och sjud ytterligare 4–5 minuter tills kycklingen är genomstekt.", timerSeconds: 270, }, { text: "Smaka av med fisksås, limesaft och socker. Servera med riset." }, ], }, { slug: "ugnsbakad-lax-med-citron-och-dill", titleSv: "Ugnsbakad lax med citron och dill", descriptionSv: "Lax i ugn med citron, dill och kokt potatis – enkel nordisk vardagslyx.", cuisine: "nordic", mealTypes: ["dinner"], tags: ["high_protein", "quick"], methods: ["oven"], equipment: ["oven", "stove"], difficulty: "beginner", prepMin: 10, cookMin: 20, portions: 4, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: false, peakSeasons: ["summer"], holidayTags: ["midsommar"], dnaProtein: "salmon", dnaCarb: "potato", dnaVegetables: ["dill", "lemon"], dnaFlavor: ["fresh", "lemon", "dill"], ingredients: [ { ing: "salmon", nameSv: "Laxfilé", qty: 600, unit: "GRAM" }, { ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", note: "i skivor" }, { ing: "dill", nameSv: "Färsk dill", qty: 20, unit: "GRAM" }, { ing: "potato", nameSv: "Potatis", qty: 8, unit: "COUNT" }, { ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM" }, { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON" }, { ing: "black_pepper", nameSv: "Svartpeppar", qty: 2, unit: "MILLILITER" }, ], steps: [ { text: "Sätt ugnen på 200 °C.", temperatureC: 200 }, { text: "Koka potatisen i saltat vatten, 18–20 minuter.", timerSeconds: 1140 }, { text: "Lägg laxen i en smord form, salta, peppra och toppa med citronskivor och halva dillen.", }, { text: "Baka i ugnen 15–18 minuter tills laxen är genomstekt och går att dela i mitten.", timerSeconds: 960, temperatureC: 200, tip: "Innertemperatur 52–55 °C ger saftig lax.", }, { text: "Servera med potatis, smör och resten av dillen." }, ], }, { slug: "vegetarisk-linsgryta", titleSv: "Vegetarisk linsgryta med kokos", descriptionSv: "Mustig gryta på röda linser, tomat och kokosmjölk med värmande indiska kryddor. Vegansk, billig och mättande.", cuisine: "indian", mealTypes: ["dinner", "lunch"], tags: ["vegan", "vegetarian", "budget", "meal_prep", "freezer_friendly"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 10, cookMin: 25, portions: 4, spiceLevel: 2, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["autumn", "winter"], holidayTags: [], storageGuidanceSv: "Blir bara godare dagen efter. Håller 4 dagar i kyl, fryser utmärkt.", dnaProtein: "red_lentils", dnaCarb: "rice_white", dnaVegetables: ["onion", "carrot", "canned_tomatoes"], dnaFlavor: ["spiced", "coconut", "warming"], ingredients: [ { ing: "red_lentils", nameSv: "Röda linser", qty: 3, unit: "DECILITER" }, { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", note: "hackad" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT" }, { ing: "ginger", nameSv: "Färsk ingefära", qty: 15, unit: "GRAM", note: "riven" }, { ing: "carrot", nameSv: "Morötter", qty: 2, unit: "COUNT", note: "tärnade" }, { ing: "canned_tomatoes", nameSv: "Krossade tomater", qty: 1, unit: "COUNT" }, { ing: "coconut_milk", nameSv: "Kokosmjölk", qty: 4, unit: "DECILITER" }, { ing: "curry_powder", nameSv: "Currypulver", qty: 1, unit: "TABLESPOON" }, { ing: "cumin", nameSv: "Spiskummin", qty: 1, unit: "TEASPOON" }, { ing: "vegetable_stock_cube", nameSv: "Grönsaksbuljongtärning", qty: 1, unit: "COUNT" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, { ing: "rice_white", nameSv: "Ris till servering", qty: 3, unit: "DECILITER" }, ], steps: [ { text: "Fräs lök, vitlök och ingefära mjuka i olja på medelvärme." }, { text: "Rör i curry och spiskummin och fräs 30 sekunder.", timerSeconds: 30 }, { text: "Tillsätt linser, morot, krossade tomater, kokosmjölk, buljongtärning och 3 dl vatten.", }, { text: "Låt sjuda under lock i 20 minuter, rör om då och då.", timerSeconds: 1200 }, { text: "Koka riset under tiden.", timerSeconds: 720 }, { text: "Smaka av grytan med salt. Servera med ris och gärna färsk koriander." }, ], }, { slug: "korv-stroganoff", titleSv: "Korv stroganoff", descriptionSv: "Snabb svensk klassiker med falukorv i krämig tomatsås. Serveras med ris.", cuisine: "swedish", mealTypes: ["dinner", "lunch"], tags: ["kid_friendly", "budget", "quick"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 10, cookMin: 15, portions: 4, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: false, peakSeasons: [], holidayTags: [], dnaProtein: "falukorv", dnaCarb: "rice_white", dnaVegetables: ["onion"], dnaFlavor: ["creamy", "tomato", "classic"], ingredients: [ { ing: "falukorv", nameSv: "Falukorv", qty: 400, unit: "GRAM", note: "i strimlor" }, { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", note: "skivad" }, { ing: "tomato_paste", nameSv: "Tomatpuré", qty: 2, unit: "TABLESPOON" }, { ing: "cooking_cream", nameSv: "Matlagningsgrädde", qty: 3, unit: "DECILITER" }, { ing: "mustard", nameSv: "Senap", qty: 1, unit: "TEASPOON" }, { ing: "paprika_powder", nameSv: "Paprikapulver", qty: 1, unit: "TEASPOON" }, { ing: "rice_white", nameSv: "Ris", qty: 3, unit: "DECILITER" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, ], steps: [ { text: "Koka riset enligt paketets anvisning.", timerSeconds: 720 }, { text: "Stek korvstrimlor och lök i olja tills de fått lite färg." }, { text: "Rör i tomatpuré och paprikapulver, fräs 1 minut.", timerSeconds: 60 }, { text: "Häll i grädden och senapen, låt sjuda 5 minuter. Se till att korven är genomstekt.", timerSeconds: 300 }, { text: "Smaka av med svartpeppar och servera med riset." }, ], }, { slug: "grekisk-sallad", titleSv: "Grekisk sallad med fetaost", descriptionSv: "Solmogen tomat, gurka, rödlök, oliver och fetaost med olivolja och oregano. Somrig, snabb och helt utan spis.", cuisine: "greek", mealTypes: ["lunch", "dinner", "starter"], tags: ["vegetarian", "quick", "low_carb", "gluten_free"], methods: ["no_cook"], equipment: [], difficulty: "beginner", prepMin: 15, cookMin: 0, portions: 4, spiceLevel: 0, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: ["summer"], holidayTags: [], dnaProtein: "feta", dnaVegetables: ["tomato", "cucumber", "red_onion", "olives"], dnaFlavor: ["fresh", "salty", "mediterranean"], ingredients: [ { ing: "tomato", nameSv: "Tomater", qty: 4, unit: "COUNT", note: "i klyftor" }, { ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", note: "i bitar" }, { ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", note: "tunt skivad" }, { ing: "olives", nameSv: "Oliver", qty: 100, unit: "GRAM" }, { ing: "feta", nameSv: "Fetaost", qty: 200, unit: "GRAM" }, { ing: "olive_oil", nameSv: "Olivolja", qty: 3, unit: "TABLESPOON" }, { ing: "oregano_dried", nameSv: "Torkad oregano", qty: 1, unit: "TEASPOON" }, { ing: "black_pepper", nameSv: "Svartpeppar", qty: 2, unit: "MILLILITER" }, ], steps: [ { text: "Skär tomat, gurka och rödlök och lägg i en vid skål." }, { text: "Toppa med oliver och fetaost i stora bitar." }, { text: "Ringla över olivolja och strö över oregano och svartpeppar. Servera direkt.", tip: "Salta lite – fetaosten och oliverna är redan sälta nog.", }, ], }, { slug: "kycklingwok-med-nudlar", titleSv: "Kycklingwok med nudlar", descriptionSv: "Snabb wok med kyckling, grönsaker och nudlar i sojabaserad sås.", cuisine: "chinese", mealTypes: ["dinner"], tags: ["quick", "high_protein"], methods: ["wok"], equipment: ["stove", "wok_pan"], difficulty: "easy", prepMin: 15, cookMin: 10, portions: 4, spiceLevel: 1, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: [], holidayTags: [], dnaProtein: "chicken_breast", dnaCarb: "noodles_egg", dnaVegetables: ["broccoli", "bell_pepper", "carrot"], dnaFlavor: ["umami", "soy", "ginger"], ingredients: [ { ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 500, unit: "GRAM", note: "i strimlor" }, { ing: "noodles_egg", nameSv: "Äggnudlar", qty: 250, unit: "GRAM" }, { ing: "broccoli", nameSv: "Broccoli", qty: 200, unit: "GRAM" }, { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT" }, { ing: "carrot", nameSv: "Morot", qty: 1, unit: "COUNT", note: "i tunna stavar" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT" }, { ing: "ginger", nameSv: "Färsk ingefära", qty: 15, unit: "GRAM" }, { ing: "soy_sauce", nameSv: "Soja", qty: 3, unit: "TABLESPOON" }, { ing: "honey", nameSv: "Honung", qty: 1, unit: "TABLESPOON" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 2, unit: "TABLESPOON" }, ], steps: [ { text: "Koka nudlarna enligt paketet, skölj i kallt vatten och låt rinna av." }, { text: "Hetta upp oljan i wok. Woka kycklingen tills den fått färg och är genomstekt, 3–4 minuter.", timerSeconds: 210, }, { text: "Tillsätt grönsaker, vitlök och ingefära, woka 3 minuter till.", timerSeconds: 180 }, { text: "Blanda i nudlar, soja och honung, woka ihop en sista minut och servera.", timerSeconds: 60, }, ], }, { slug: "tomatsoppa-med-basilika", titleSv: "Tomatsoppa med basilika", descriptionSv: "Len tomatsoppa på krossade tomater, toppad med färsk basilika. Gott med bröd till.", cuisine: "italian", mealTypes: ["lunch", "dinner", "starter"], tags: ["vegetarian", "budget", "quick", "low_calorie"], methods: ["stovetop"], equipment: ["stove", "blender"], difficulty: "beginner", prepMin: 5, cookMin: 15, portions: 4, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["autumn", "winter"], holidayTags: [], dnaVegetables: ["canned_tomatoes", "onion", "basil"], dnaFlavor: ["tomato", "herby", "comforting"], ingredients: [ { ing: "canned_tomatoes", nameSv: "Krossade tomater", qty: 2, unit: "COUNT" }, { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT" }, { ing: "vegetable_stock_cube", nameSv: "Grönsaksbuljongtärning", qty: 1, unit: "COUNT" }, { ing: "basil", nameSv: "Färsk basilika", qty: 15, unit: "GRAM" }, { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON" }, { ing: "sugar", nameSv: "Socker", qty: 1, unit: "TEASPOON" }, { ing: "cooking_cream", nameSv: "Matlagningsgrädde", qty: 1, unit: "DECILITER", optional: true, }, ], steps: [ { text: "Fräs hackad lök och vitlök mjuka i olivolja." }, { text: "Tillsätt krossade tomater, 3 dl vatten, buljongtärning och socker. Sjud 10 minuter.", timerSeconds: 600, }, { text: "Mixa soppan slät med stavmixer. Rör ev. i grädden." }, { text: "Smaka av med salt och peppar, toppa med basilika och servera med gott bröd." }, ], }, { slug: "chili-con-carne", titleSv: "Chili con carne", descriptionSv: "Mustig färsgryta med bönor, tomat och rökig hetta. Perfekt att laga i stor sats.", cuisine: "mexican", mealTypes: ["dinner"], tags: ["meal_prep", "freezer_friendly", "batch_cooking", "high_protein"], methods: ["stovetop"], equipment: ["stove"], difficulty: "easy", prepMin: 15, cookMin: 40, portions: 6, spiceLevel: 2, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["autumn", "winter"], holidayTags: [], storageGuidanceSv: "Håller 4 dagar i kyl, fryser utmärkt i portionslådor.", dnaProtein: "minced_beef", dnaCarb: "rice_white", dnaVegetables: ["onion", "bell_pepper", "kidney_beans_canned"], dnaFlavor: ["smoky", "spicy", "tomato"], ingredients: [ { ing: "minced_beef", nameSv: "Nötfärs", qty: 600, unit: "GRAM" }, { ing: "onion", nameSv: "Gul lök", qty: 2, unit: "COUNT" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 3, unit: "COUNT" }, { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT" }, { ing: "kidney_beans_canned", nameSv: "Kidneybönor", qty: 400, unit: "GRAM" }, { ing: "canned_tomatoes", nameSv: "Krossade tomater", qty: 2, unit: "COUNT" }, { ing: "tomato_paste", nameSv: "Tomatpuré", qty: 2, unit: "TABLESPOON" }, { ing: "cumin", nameSv: "Spiskummin", qty: 2, unit: "TEASPOON" }, { ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON" }, { ing: "chili_flakes", nameSv: "Chiliflakes", qty: 1, unit: "TEASPOON" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, { ing: "rice_white", nameSv: "Ris till servering", qty: 4, unit: "DECILITER" }, ], steps: [ { text: "Bryn färsen i olja i en stor gryta. Tillsätt hackad lök, vitlök och paprika och fräs mjukt.", }, { text: "Rör i tomatpuré och alla kryddor, fräs 1 minut.", timerSeconds: 60 }, { text: "Tillsätt krossade tomater och 2 dl vatten. Sjud under lock 30 minuter. Se till att färsen är genomstekt.", timerSeconds: 1800, }, { text: "Rör i avsköljda bönor och sjud 5 minuter till. Smaka av med salt.", timerSeconds: 300, }, { text: "Servera med ris, och gärna crème fraiche och riven ost." }, ], }, { slug: "teriyakilax-med-ris", titleSv: "Teriyakilax med ris", descriptionSv: "Glaserad lax med sötsalt teriyaki, ångat ris och broccoli.", cuisine: "japanese", mealTypes: ["dinner"], tags: ["quick", "high_protein"], methods: ["stovetop", "oven"], equipment: ["stove"], difficulty: "easy", prepMin: 10, cookMin: 15, portions: 4, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: false, peakSeasons: [], holidayTags: [], dnaProtein: "salmon", dnaCarb: "rice_white", dnaVegetables: ["broccoli"], dnaFlavor: ["umami", "sweet", "glazed"], ingredients: [ { ing: "salmon", nameSv: "Laxfilé", qty: 600, unit: "GRAM", note: "i portionsbitar" }, { ing: "teriyaki_sauce", nameSv: "Teriyakisås", qty: 4, unit: "TABLESPOON" }, { ing: "rice_white", nameSv: "Ris", qty: 3, unit: "DECILITER" }, { ing: "broccoli", nameSv: "Broccoli", qty: 300, unit: "GRAM" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, { ing: "sesame_seeds", nameSv: "Sesamfrön", qty: 1, unit: "TABLESPOON", optional: true }, ], steps: [ { text: "Koka riset. Ånga eller koka broccolin de sista 4 minuterna.", timerSeconds: 720 }, { text: "Stek laxen i olja med skinnsidan ner 3–4 minuter, vänd och stek 2 minuter till tills laxen är genomstekt.", timerSeconds: 330, }, { text: "Häll teriyakisåsen över laxen och låt den glasera på svag värme 1–2 minuter.", timerSeconds: 90, }, { text: "Servera laxen på ris med broccoli, toppa gärna med sesamfrön." }, ], }, { slug: "spaghetti-med-kottfarssas", titleSv: "Spaghetti med köttfärssås", descriptionSv: "Vardagens trotjänare: mustig köttfärssås som fått puttra, serverad med spaghetti.", cuisine: "italian", mealTypes: ["dinner", "lunch"], tags: ["kid_friendly", "budget", "meal_prep", "freezer_friendly"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 10, cookMin: 30, portions: 4, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: [], holidayTags: [], storageGuidanceSv: "Såsen håller 3 dagar i kyl och fryser utmärkt.", dnaProtein: "minced_beef", dnaCarb: "pasta_dry", dnaVegetables: ["onion", "carrot", "canned_tomatoes"], dnaFlavor: ["tomato", "savory", "classic"], ingredients: [ { ing: "minced_beef", nameSv: "Nötfärs", qty: 500, unit: "GRAM" }, { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT" }, { ing: "carrot", nameSv: "Morot", qty: 1, unit: "COUNT", note: "finriven" }, { ing: "canned_tomatoes", nameSv: "Krossade tomater", qty: 2, unit: "COUNT" }, { ing: "tomato_paste", nameSv: "Tomatpuré", qty: 2, unit: "TABLESPOON" }, { ing: "oregano_dried", nameSv: "Torkad oregano", qty: 1, unit: "TEASPOON" }, { ing: "pasta_dry", nameSv: "Spaghetti", qty: 320, unit: "GRAM" }, { ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON" }, ], steps: [ { text: "Fräs hackad lök och vitlök i olivolja. Tillsätt färsen och bryn tills den fått färg.", }, { text: "Rör i tomatpuré, riven morot och oregano." }, { text: "Tillsätt krossade tomater och 1 dl vatten. Låt sjuda minst 20 minuter. Se till att färsen är genomstekt.", timerSeconds: 1200, tip: "Längre puttertid = rundare smak.", }, { text: "Koka spaghettin enligt paketet.", timerSeconds: 540 }, { text: "Smaka av såsen med salt och peppar och servera med pastan." }, ], }, { slug: "pytt-i-panna", titleSv: "Pytt i panna med stekt ägg", descriptionSv: "Klassisk restmat på tärnad potatis, lök och korv eller kött – toppad med stekt ägg.", cuisine: "swedish", mealTypes: ["dinner", "lunch"], tags: ["budget", "leftover_friendly", "quick"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 15, cookMin: 15, portions: 4, spiceLevel: 0, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: [], holidayTags: [], dnaProtein: "falukorv", dnaCarb: "potato", dnaVegetables: ["onion"], dnaFlavor: ["savory", "fried", "classic"], ingredients: [ { ing: "potato", nameSv: "Kokt potatis", qty: 8, unit: "COUNT", note: "tärnad – perfekt för gårdagens potatis", }, { ing: "falukorv", nameSv: "Falukorv", qty: 300, unit: "GRAM", note: "tärnad" }, { ing: "onion", nameSv: "Gul lök", qty: 2, unit: "COUNT", note: "hackade" }, { ing: "egg", nameSv: "Ägg", qty: 4, unit: "COUNT" }, { ing: "butter", nameSv: "Smör", qty: 40, unit: "GRAM" }, ], steps: [ { text: "Stek potatistärningarna i hälften av smöret på hög värme tills gyllene och krispiga.", }, { text: "Tillsätt lök och korv och stek tills allt fått fin färg. Se till att korven är genomstekt." }, { text: "Stek äggen i resten av smöret." }, { text: "Salta, peppra och servera pytten med stekt ägg och gärna rödbetor." }, ], }, { slug: "halloumiburgare", titleSv: "Halloumiburgare med avokado", descriptionSv: "Vegetarisk burgare med stekt halloumi, avokado och syrlig rödlök i briochebröd.", cuisine: "american", mealTypes: ["dinner"], tags: ["vegetarian", "quick"], methods: ["stovetop", "grill"], equipment: ["stove"], difficulty: "beginner", prepMin: 15, cookMin: 10, portions: 4, spiceLevel: 0, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: ["summer"], holidayTags: ["grillsäsong"], dnaProtein: "halloumi", dnaCarb: "hamburger_bun", dnaVegetables: ["avocado", "tomato", "red_onion", "lettuce"], dnaFlavor: ["salty", "fresh", "grilled"], ingredients: [ { ing: "halloumi", nameSv: "Halloumi", qty: 400, unit: "GRAM", note: "i skivor" }, { ing: "hamburger_bun", nameSv: "Hamburgerbröd", qty: 4, unit: "COUNT" }, { ing: "avocado", nameSv: "Avokado", qty: 2, unit: "COUNT" }, { ing: "tomato", nameSv: "Tomat", qty: 2, unit: "COUNT", note: "skivade" }, { ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", note: "tunt skivad" }, { ing: "lettuce", nameSv: "Sallad", qty: 0.25, unit: "COUNT" }, { ing: "mayonnaise", nameSv: "Majonnäs", qty: 4, unit: "TABLESPOON" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, ], steps: [ { text: "Stek eller grilla halloumiskivorna tills de är gyllene på båda sidor, 2–3 minuter per sida.", timerSeconds: 300, }, { text: "Rosta bröden snabbt i pannan eller på grillen." }, { text: "Mosa avokadon grovt med lite salt." }, { text: "Bygg burgarna: majonnäs, sallad, halloumi, avokado, tomat och rödlök." }, ], }, { slug: "kikartscurry", titleSv: "Kikärtscurry med spenat", descriptionSv: "Snabb vegansk curry på kikärtor, tomat, kokosmjölk och spenat. Klar på 20 minuter.", cuisine: "indian", mealTypes: ["dinner", "lunch"], tags: ["vegan", "vegetarian", "budget", "quick", "meal_prep"], methods: ["stovetop"], equipment: ["stove"], difficulty: "beginner", prepMin: 5, cookMin: 15, portions: 4, spiceLevel: 2, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: [], holidayTags: [], dnaProtein: "chickpeas_canned", dnaCarb: "rice_white", dnaVegetables: ["spinach", "onion", "canned_tomatoes"], dnaFlavor: ["spiced", "coconut", "warming"], ingredients: [ { ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 500, unit: "GRAM", note: "avsköljda" }, { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT" }, { ing: "garlic", nameSv: "Vitlöksklyftor", qty: 2, unit: "COUNT" }, { ing: "canned_tomatoes", nameSv: "Krossade tomater", qty: 1, unit: "COUNT" }, { ing: "coconut_milk", nameSv: "Kokosmjölk", qty: 2, unit: "DECILITER" }, { ing: "spinach", nameSv: "Spenat", qty: 100, unit: "GRAM" }, { ing: "garam_masala", nameSv: "Garam masala", qty: 2, unit: "TEASPOON" }, { ing: "turmeric", nameSv: "Gurkmeja", qty: 1, unit: "TEASPOON" }, { ing: "rice_white", nameSv: "Ris", qty: 3, unit: "DECILITER" }, { ing: "rapeseed_oil", nameSv: "Olja", qty: 1, unit: "TABLESPOON" }, ], steps: [ { text: "Koka riset.", timerSeconds: 720 }, { text: "Fräs hackad lök och vitlök i olja, rör i kryddorna sista halvminuten." }, { text: "Tillsätt kikärtor, krossade tomater och kokosmjölk. Sjud 10 minuter.", timerSeconds: 600, }, { text: "Vänd ner spenaten, smaka av med salt och servera med ris." }, ], }, { slug: "vasterbottensostpaj", titleSv: "Västerbottensostpaj", descriptionSv: "Midsommarklassikern framför andra: knaprigt pajskal fyllt med krämig äggstanning och rejält med Västerbottensost.", cuisine: "swedish", mealTypes: ["lunch", "buffet", "starter"], tags: ["vegetarian", "meal_prep"], methods: ["oven"], equipment: ["oven"], difficulty: "medium", prepMin: 25, cookMin: 40, portions: 8, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["summer"], holidayTags: ["midsommar", "jul"], storageGuidanceSv: "Håller 3 dagar i kyl. Kan bakas dagen innan och värmas.", dnaProtein: "vasterbotten_cheese", dnaCarb: "flour_wheat", dnaVegetables: [], dnaFlavor: ["rich", "cheesy", "buttery"], ingredients: [ { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 3, unit: "DECILITER", group: "Pajdeg" }, { ing: "butter", nameSv: "Smör (kallt)", qty: 125, unit: "GRAM", group: "Pajdeg" }, { ing: "vasterbotten_cheese", nameSv: "Västerbottensost (riven)", qty: 300, unit: "GRAM", group: "Fyllning", }, { ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", group: "Fyllning" }, { ing: "cream", nameSv: "Vispgrädde", qty: 2, unit: "DECILITER", group: "Fyllning" }, { ing: "black_pepper", nameSv: "Svartpeppar", qty: 2, unit: "MILLILITER", group: "Fyllning" }, ], steps: [ { text: "Nyp ihop mjöl, smör och 1 msk kallt vatten till en deg. Tryck ut i en pajform och vila kallt 30 minuter.", timerSeconds: 1800, }, { text: "Sätt ugnen på 200 °C. Förgrädda skalet 10 minuter.", timerSeconds: 600, temperatureC: 200, }, { text: "Vispa ihop ägg, grädde och peppar. Rör i den rivna osten." }, { text: "Häll fyllningen i skalet och grädda 25–30 minuter tills stanningen stelnat och fått gyllene yta.", timerSeconds: 1650, temperatureC: 200, }, { text: "Låt svalna något före servering – god ljummen med löjrom, rödlök och crème fraiche.", }, ], }, { slug: "jansons-frestelse", titleSv: "Janssons frestelse", descriptionSv: "Julbordets krämiga potatisgratäng med svensk ansjovis, lök och grädde – gyllene och knaprig på ytan.", cuisine: "swedish", mealTypes: ["dinner", "buffet"], tags: ["meal_prep"], methods: ["oven"], equipment: ["oven"], difficulty: "easy", prepMin: 25, cookMin: 55, portions: 6, spiceLevel: 0, mealPrepFriendly: true, freezerFriendly: false, peakSeasons: ["winter"], holidayTags: ["jul", "påsk", "midsommar"], dnaProtein: "anchovy_swedish", dnaCarb: "potato", dnaVegetables: ["onion"], dnaFlavor: ["rich", "salty", "creamy"], ingredients: [ { ing: "potato", nameSv: "Potatis (fast)", qty: 10, unit: "COUNT", note: "i tunna stavar" }, { ing: "onion", nameSv: "Gul lök", qty: 2, unit: "COUNT", note: "tunt skivad" }, { ing: "anchovy_swedish", nameSv: "Ansjovisfiléer med spad", qty: 125, unit: "GRAM" }, { ing: "cream", nameSv: "Vispgrädde", qty: 3, unit: "DECILITER" }, { ing: "breadcrumbs", nameSv: "Ströbröd", qty: 2, unit: "TABLESPOON" }, { ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM" }, ], steps: [ { text: "Sätt ugnen på 200 °C.", temperatureC: 200 }, { text: "Stek löken mjuk i smör utan att den tar färg." }, { text: "Varva potatisstavar, lök och ansjovis i en smord form. Avsluta med potatis." }, { text: "Häll över hälften av grädden och lite ansjovisspad. Strö över ströbröd och klicka på smör.", }, { text: "Grädda 30 minuter, häll på resten av grädden och grädda 20–25 minuter till tills potatisen är mjuk.", timerSeconds: 3300, temperatureC: 200, }, ], }, { slug: "sill-och-farskpotatis", titleSv: "Sill och färskpotatis", descriptionSv: "Midsommarens självklara lunch: inlagd sill, nykokt färskpotatis med dill, gräddfil och gräslök.", cuisine: "swedish", mealTypes: ["lunch", "buffet"], tags: ["quick", "gluten_free"], methods: ["stovetop", "no_cook"], equipment: ["stove"], difficulty: "beginner", prepMin: 10, cookMin: 20, portions: 4, spiceLevel: 0, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: ["summer"], holidayTags: ["midsommar"], dnaProtein: "pickled_herring", dnaCarb: "new_potato", dnaVegetables: ["dill"], dnaFlavor: ["fresh", "pickled", "summer"], ingredients: [ { ing: "pickled_herring", nameSv: "Inlagd sill", qty: 400, unit: "GRAM" }, { ing: "new_potato", nameSv: "Färskpotatis", qty: 800, unit: "GRAM" }, { ing: "dill", nameSv: "Färsk dill", qty: 15, unit: "GRAM" }, { ing: "creme_fraiche", nameSv: "Crème fraiche eller gräddfil", qty: 2, unit: "DECILITER" }, { ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", note: "finhackad" }, { ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM" }, ], steps: [ { text: "Skrubba färskpotatisen och koka med en dillkvist i saltat vatten, 15–18 minuter.", timerSeconds: 1020, }, { text: "Lägg upp sillen och strö över finhackad rödlök." }, { text: "Servera potatisen med smör och dill, tillsammans med sill och crème fraiche.", tip: "Ett hårdkokt ägg och knäckebröd gör midsommartallriken komplett.", }, ], }, { slug: "havregrynsgrot", titleSv: "Havregrynsgröt med äpple och kanel", descriptionSv: "Vardagsfrukostens bas: krämig havregrynsgröt toppad med rivet äpple och kanel.", cuisine: "swedish", mealTypes: ["breakfast"], tags: ["budget", "quick", "vegan"], methods: ["stovetop", "microwave"], equipment: ["stove"], difficulty: "beginner", prepMin: 2, cookMin: 5, portions: 2, spiceLevel: 0, mealPrepFriendly: false, freezerFriendly: false, peakSeasons: [], holidayTags: [], dnaCarb: "oats", dnaVegetables: [], dnaFlavor: ["warm", "cinnamon", "simple"], ingredients: [ { ing: "oats", nameSv: "Havregryn", qty: 2, unit: "DECILITER" }, { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "MILLILITER" }, { ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", note: "rivet" }, { ing: "cinnamon", nameSv: "Kanel", qty: 1, unit: "TEASPOON" }, { ing: "milk_3", nameSv: "Mjölk till servering", qty: 2, unit: "DECILITER", optional: true }, ], steps: [ { text: "Koka upp 4 dl vatten med havregryn och salt." }, { text: "Sjud under omrörning 3 minuter.", timerSeconds: 180 }, { text: "Toppa med rivet äpple, kanel och mjölk." }, ], }, ];