d267effd6c
Ratta slug-bugg: recept-taggen "grillsäsong" matchade aldrig event-sluggen "grillsasong" (ASCII) sa grillsäsong-knappen visade inget. Nu ratt. 15 nya hogtidsrecept taggade med exakt SE-event-slug: rodbetssallad, rodkal, senapssill, stekt prinskorv, kokta kraftor med krondill, aioli, ostbricka, farskpotatis med dill, agghalvor med rakror, rakcocktail, grillspett med halloumi, grillad kycklingfile, pastasallad i matladan, tillbehor till surstromming, kryddig kyckling med ris. Omtaggar befintliga recept till ratt hogtid: vasterbottensostpaj +kraftskiva, grekisk-sallad +grillsasong, chili/spaghetti +skolstart, chokladtarta +alla-hjartans-dag, tomatsoppa +halloween, korvgratang +oktoberfest, halloumiburgare +valborg. Alla 14 SE-hogtider har nu minst ett korrekt taggat recept. Naring och enheter ar berakningsbara for alla 74 extrarecept (invarianttest gront, repo-typecheck gront).
3078 lines
118 KiB
TypeScript
3078 lines
118 KiB
TypeScript
import type { SeedRecipe } from "./recipes.js";
|
||
|
||
/**
|
||
* Extra redaktionella recept (spec §14–15) – egna formuleringar, sourceType
|
||
* own_editorial. Fyller upp de glesa kategorierna (frukost/lunch/mellanmål/
|
||
* efterrätt/bak) så bläddra-vyn och "Vad ska vi äta?" har mer att välja på.
|
||
*
|
||
* HÅRDA REGLER (annars kraschar seed):
|
||
* - Varje `ing` MÅSTE finnas i SEED_INGREDIENTS (annars kastar run.ts rad 675).
|
||
* - (ing, unit) måste vara beräkningsbar: GRAM/KILOGRAM alltid; volym kräver
|
||
* density; COUNT kräver gramsPerPiece (annars kastar run.ts rad 691).
|
||
* - Näring + allergener härleds automatiskt ur ingredienserna vid seed.
|
||
*
|
||
* Alla ingrediens/enhet-par nedan är verifierade mot katalogen.
|
||
*/
|
||
export const EXTRA_RECIPES: SeedRecipe[] = [
|
||
// ---------------------------------------------------------------------------
|
||
// BAK (tag: baking)
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "kanelbullar",
|
||
titleSv: "Kanelbullar",
|
||
descriptionSv:
|
||
"Mjuka, saftiga bullar med smörig kanelfyllning – den självklara fikan att baka en söndag.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "bun", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 45,
|
||
cookMin: 12,
|
||
portions: 24,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "cinnamon", "cardamom", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 650, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false },
|
||
{ ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 175, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "cardamom", nameSv: "Kardemumma", qty: 3, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "cinnamon", nameSv: "Kanel", qty: 3, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Smält 75 g av smöret och rör ner mjölken. Värm till fingervarmt (37 °C) och lös upp jästen i vätskan.",
|
||
},
|
||
{
|
||
text: "Blanda i socker (spara 50 g till fyllningen), stött kardemumma, salt och det mesta av mjölet. Arbeta degen smidig i 8–10 minuter och låt jäsa under bakduk i 40 minuter.",
|
||
},
|
||
{
|
||
text: "Kavla ut degen till en rektangel. Bred på resten av det mjuka smöret och strö över kanel och det sparade sockret.",
|
||
},
|
||
{ text: "Rulla ihop, skär 24 bullar och lägg i formar. Jäs 30 minuter till." },
|
||
{
|
||
text: "Pensla med uppvispat ägg och grädda mitt i ugnen tills gyllenbruna.",
|
||
temperatureC: 225,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "kardemummabullar",
|
||
titleSv: "Kardemummabullar",
|
||
descriptionSv: "Doftande bullar där kardemumman får ta plats både i degen och i fyllningen.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "bun", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 45,
|
||
cookMin: 12,
|
||
portions: 24,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "cardamom", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 650, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false },
|
||
{ ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 175, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "cardamom", nameSv: "Kardemumma", qty: 8, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Smält 75 g smör, rör ner mjölken och värm till fingervarmt. Lös upp jästen i vätskan.",
|
||
},
|
||
{
|
||
text: "Blanda i hälften av sockret, hälften av den stötta kardemumman, salt och mjölet. Arbeta degen smidig och låt jäsa 40 minuter under bakduk.",
|
||
},
|
||
{ text: "Kavla ut, bred på det mjuka smöret och strö över resten av socker och kardemumma." },
|
||
{ text: "Rulla, skär 24 bullar, lägg i formar och jäs 30 minuter." },
|
||
{ text: "Pensla med ägg och grädda gyllenbruna mitt i ugnen.", temperatureC: 225 },
|
||
],
|
||
},
|
||
{
|
||
slug: "appelsmulpaj",
|
||
titleSv: "Äppelsmulpaj",
|
||
descriptionSv:
|
||
"Syrliga äpplen under ett gyllene lock av havregryn och smör – ljummen med grädde är den oslagbar.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "pie", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 25,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["autumn"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "oats",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "cinnamon", "apple"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "apple", nameSv: "Äpple", qty: 6, unit: "COUNT", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "cinnamon", nameSv: "Kanel", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 100, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Skala och skär äpplena i klyftor. Lägg i en smord form och blanda med kanel och hälften av sockret.",
|
||
},
|
||
{ text: "Nyp ihop smör, mjöl, havregryn och resten av sockret till ett grovt smul." },
|
||
{
|
||
text: "Fördela smulet över äpplena och grädda mitt i ugnen tills locket är gyllene och äpplena mjuka.",
|
||
temperatureC: 200,
|
||
},
|
||
{ text: "Servera ljummen med vispad grädde." },
|
||
],
|
||
},
|
||
{
|
||
slug: "frallor",
|
||
titleSv: "Frukostfrallor",
|
||
descriptionSv:
|
||
"Nygräddade frallor med krispig skorpa och luftigt inkråm – perfekta till frukostbordet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["baking", "bread", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 30,
|
||
cookMin: 12,
|
||
portions: 12,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["bread", "mild"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false },
|
||
{ ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 50, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1.5, unit: "TEASPOON", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 15, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Smält smöret, rör ner mjölken och värm till fingervarmt. Lös upp jästen." },
|
||
{
|
||
text: "Tillsätt salt, socker och mjöl och arbeta degen smidig. Låt jäsa 40 minuter under bakduk.",
|
||
},
|
||
{ text: "Forma 12 runda frallor, lägg på plåt och jäs 30 minuter till." },
|
||
{
|
||
text: "Grädda högt upp i ugnen tills frallorna är gyllene och låter ihåliga när man knackar på undersidan.",
|
||
temperatureC: 250,
|
||
},
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// FRUKOST
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "havregrynsgrot-med-apple",
|
||
titleSv: "Havregrynsgröt med äpple och kanel",
|
||
descriptionSv: "Krämig gröt kokt på mjölk, riven äpple och en nypa kanel. Klar på tio minuter.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "kid_friendly", "quick", "budget"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 2,
|
||
cookMin: 6,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "oats",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["mild", "cinnamon", "apple"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 80, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 5, unit: "DECILITER", optional: false },
|
||
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "cinnamon", nameSv: "Kanel", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Koka upp mjölken i en kastrull och häll i havregrynen." },
|
||
{ text: "Sjud under omrörning i cirka 5 minuter tills gröten är krämig." },
|
||
{ text: "Riv ner äpplet, rör i kanel och salt och servera direkt." },
|
||
],
|
||
},
|
||
{
|
||
slug: "bar-banansmoothie",
|
||
titleSv: "Bär- och banansmoothie",
|
||
descriptionSv:
|
||
"Krämig smoothie på yoghurt, banan och jordgubbar – snabb frukost eller mellanmål.",
|
||
cuisine: "international",
|
||
mealTypes: ["breakfast", "snack"],
|
||
tags: ["vegetarian", "kid_friendly", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: ["blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "creamy", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "strawberry", nameSv: "Jordgubbar", qty: 150, unit: "GRAM", optional: false },
|
||
{
|
||
ing: "yoghurt_natural",
|
||
nameSv: "Naturell yoghurt",
|
||
qty: 3,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "honey", nameSv: "Honung", qty: 20, unit: "GRAM", optional: true },
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 20, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Lägg banan, jordgubbar, yoghurt, honung och havregryn i en mixer." },
|
||
{ text: "Mixa slätt och häll upp i glas. Späd med lite vatten om du vill ha den tunnare." },
|
||
],
|
||
},
|
||
{
|
||
slug: "aggrora-pa-surdeg",
|
||
titleSv: "Krämig äggröra på surdeg",
|
||
descriptionSv: "Len äggröra på rågat smör serverad på rostat surdegsbröd med riven ost.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "high_protein", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 5,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "egg",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "egg", nameSv: "Ägg", qty: 4, unit: "COUNT", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 0.5, unit: "DECILITER", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 15, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
{ ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "cheese_hard", nameSv: "Hårdost", qty: 40, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Vispa ihop ägg, mjölk, salt och peppar." },
|
||
{ text: "Smält smöret i en kastrull på låg värme och häll i äggen." },
|
||
{
|
||
text: "Rör långsamt tills äggröran är krämig men helt stannad och inte längre rinnig.",
|
||
tip: "Ta av från värmen strax innan den känns färdig – den efterstelnar.",
|
||
},
|
||
{ text: "Rosta brödet, toppa med äggröran och riven ost." },
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// MELLANMÅL (fyller den tomma kategorin)
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "kvarg-med-bar-och-honung",
|
||
titleSv: "Kvarg med bär och honung",
|
||
descriptionSv: "Proteinrikt mellanmål: krämig kvarg med jordgubbar, honung och lite knaprigt.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegetarian", "high_protein", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 3,
|
||
cookMin: 0,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["creamy", "sweet", "fruity"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "quark", nameSv: "Kvarg", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "strawberry", nameSv: "Jordgubbar", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: false },
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 20, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Lägg upp kvargen i en skål." },
|
||
{ text: "Toppa med jordgubbar, en skvätt honung och lite havregryn för knaprighet." },
|
||
],
|
||
},
|
||
{
|
||
slug: "appelklyftor-med-jordnotssmor",
|
||
titleSv: "Äppelklyftor med jordnötssmör",
|
||
descriptionSv: "Snabbt och mättande mellanmål med krispigt äpple och krämigt jordnötssmör.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegetarian", "kid_friendly", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 3,
|
||
cookMin: 0,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "nutty"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "peanut_butter", nameSv: "Jordnötssmör", qty: 30, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skär äpplet i klyftor och ta bort kärnhuset." },
|
||
{ text: "Servera med jordnötssmör att doppa i." },
|
||
],
|
||
},
|
||
{
|
||
slug: "rostade-kikartor",
|
||
titleSv: "Rostade kikärtor",
|
||
descriptionSv: "Krispiga, kryddiga kikärtor från ugnen – ett vegetariskt snacks med sting.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegan", "budget", "high_protein"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 25,
|
||
portions: 4,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "spiced", "crispy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 400, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "cumin", nameSv: "Spiskummin", qty: 1, unit: "TEASPOON", optional: true },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skölj och låt kikärtorna rinna av väl. Torka dem torra i en handduk." },
|
||
{ text: "Blanda kikärtorna med olja, paprikapulver, spiskummin och salt." },
|
||
{
|
||
text: "Rosta på plåt tills de är gyllene och krispiga, skaka om halvvägs.",
|
||
temperatureC: 200,
|
||
},
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// EFTERRÄTT
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "risgrynsgrot",
|
||
titleSv: "Risgrynsgröt",
|
||
descriptionSv:
|
||
"Krämig risgrynsgröt kokt på mjölk, serverad med kanel och socker. Klassisk frukost och självklar på julbordet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "kid_friendly", "budget"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 40,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["winter"],
|
||
holidayTags: ["jul"],
|
||
variantType: "standard",
|
||
dnaCarb: "rice_white",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["creamy", "cinnamon", "mild"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "rice_white", nameSv: "Ris", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 8, unit: "DECILITER", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 20, unit: "GRAM", optional: false },
|
||
{ ing: "cinnamon", nameSv: "Kanel", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 10, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Koka riset i 2 dl vatten några minuter tills vattnet sugits upp." },
|
||
{
|
||
text: "Häll i mjölken och sjud på låg värme under omrörning i 35–40 minuter tills gröten är krämig.",
|
||
},
|
||
{ text: "Rör i salt och servera med kanel, socker och en klick smör." },
|
||
],
|
||
},
|
||
{
|
||
slug: "jordgubbar-med-gradde",
|
||
titleSv: "Jordgubbar med vispad grädde",
|
||
descriptionSv: "Sommarens enklaste efterrätt: söta jordgubbar och lätt vispad grädde.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["vegetarian", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: ["hand_mixer"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: ["midsommar"],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "creamy", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "strawberry", nameSv: "Jordgubbar", qty: 400, unit: "GRAM", optional: false },
|
||
{ ing: "cream", nameSv: "Vispgrädde", qty: 2, unit: "DECILITER", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 15, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Skölj och dela jordgubbarna. Strö eventuellt över lite socker och låt stå några minuter.",
|
||
},
|
||
{ text: "Vispa grädden lätt och fluffig." },
|
||
{ text: "Servera jordgubbarna med grädden." },
|
||
],
|
||
},
|
||
{
|
||
slug: "bananglass",
|
||
titleSv: "Bananglass med jordnötssmör",
|
||
descriptionSv: "Krämig glass helt utan tillsatt socker – bara frusen banan och jordnötssmör.",
|
||
cuisine: "international",
|
||
mealTypes: ["dessert", "snack"],
|
||
tags: ["vegan", "kid_friendly"],
|
||
methods: ["no_cook"],
|
||
equipment: ["blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "nutty", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "banana", nameSv: "Banan", qty: 3, unit: "COUNT", optional: false },
|
||
{ ing: "peanut_butter", nameSv: "Jordnötssmör", qty: 20, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Skala bananerna, skiva och frys minst 3 timmar." },
|
||
{ text: "Mixa den frusna bananen med jordnötssmör till en krämig glass. Servera direkt." },
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// LUNCH
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "morots-och-linssoppa",
|
||
titleSv: "Krämig morots- och linssoppa",
|
||
descriptionSv:
|
||
"Matig, len soppa på morötter och röda linser med kokosmjölk och en värmande touch av spiskummin.",
|
||
cuisine: "international",
|
||
mealTypes: ["lunch", "dinner"],
|
||
tags: ["vegan", "budget", "batch_cooking"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove", "blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 25,
|
||
portions: 4,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["autumn", "winter"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["carrot", "onion"],
|
||
dnaFlavor: ["savory", "spiced", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "carrot", nameSv: "Morot", qty: 5, unit: "COUNT", optional: false },
|
||
{ ing: "red_lentils", nameSv: "Röda linser", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "coconut_milk", nameSv: "Kokosmjölk", qty: 2, unit: "DECILITER", optional: false },
|
||
{
|
||
ing: "vegetable_stock_cube",
|
||
nameSv: "Grönsaksbuljongtärning",
|
||
qty: 2,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false },
|
||
{ ing: "cumin", nameSv: "Spiskummin", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Fräs hackad lök och vitlök mjuka i oljan. Rör i spiskummin och låt fräsa någon minut.",
|
||
},
|
||
{
|
||
text: "Tillsätt skalade och skivade morötter, sköljda linser, smulade buljongtärningar och 8 dl vatten. Sjud tills morötter och linser är helt mjuka, cirka 20 minuter.",
|
||
},
|
||
{ text: "Mixa soppan slät och rör ner kokosmjölken. Smaka av med salt och peppar." },
|
||
{ text: "Späd med lite vatten om du vill ha den tunnare och servera med bröd." },
|
||
],
|
||
},
|
||
{
|
||
slug: "rakmacka",
|
||
titleSv: "Klassisk räkmacka",
|
||
descriptionSv: "Generös räkmacka på surdeg med ägg, majonnäs, gurka och dill.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["lunch"],
|
||
tags: ["high_protein"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 8,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "shrimp",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fresh", "savory"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "shrimp", nameSv: "Räkor", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "cucumber", nameSv: "Gurka", qty: 0.25, unit: "COUNT", optional: true },
|
||
{ ing: "dill", nameSv: "Dill", qty: 5, unit: "GRAM", optional: true },
|
||
{ ing: "lettuce", nameSv: "Sallad", qty: 0.25, unit: "COUNT", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Koka äggen hårda i 8 minuter, spola kalla och skala." },
|
||
{ text: "Lägg salladsblad på brödet, klicka på majonnäs och lägg på skivat ägg och gurka." },
|
||
{ text: "Toppa med räkor, dill och en citronklyfta att pressa över." },
|
||
],
|
||
},
|
||
{
|
||
slug: "halloumi-kikartssallad",
|
||
titleSv: "Halloumi- och kikärtssallad",
|
||
descriptionSv:
|
||
"Matig sallad med stekt halloumi, kikärtor och krispiga grönsaker i citrondressing.",
|
||
cuisine: "international",
|
||
mealTypes: ["lunch", "dinner"],
|
||
tags: ["vegetarian", "high_protein"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 8,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "halloumi",
|
||
dnaVegetables: ["tomato", "cucumber"],
|
||
dnaFlavor: ["savory", "fresh"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "halloumi", nameSv: "Halloumi", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "tomato", nameSv: "Tomat", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", optional: true },
|
||
{ ing: "lettuce", nameSv: "Sallad", qty: 0.5, unit: "COUNT", optional: true },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skiva halloumin och stek gyllene på båda sidor i lite av oljan." },
|
||
{ text: "Hacka tomat, gurka, rödlök och sallad och blanda med avrunna kikärtor." },
|
||
{ text: "Ringla över resten av oljan och pressad citron, salta och peppra." },
|
||
{ text: "Toppa salladen med den varma halloumin och servera direkt." },
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// BAK & EFTERRÄTT (möjliga tack vare den breddade katalogen)
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "kladdkaka",
|
||
titleSv: "Kladdkaka",
|
||
descriptionSv:
|
||
"Seg, kladdig chokladkaka med krispig yta – klar på en kvart plus ugnstid. Godast lite kladdig i mitten.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "cake", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 20,
|
||
portions: 8,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "chocolate"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 250, unit: "GRAM", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 120, unit: "GRAM", optional: false },
|
||
{ ing: "cocoa", nameSv: "Kakao", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Smält smöret och låt svalna något. Vispa ihop socker och ägg." },
|
||
{
|
||
text: "Rör ner mjöl, kakao, vaniljsocker och salt och blanda i det smälta smöret till en slät smet.",
|
||
},
|
||
{ text: "Häll smeten i en smord och bröad form.", tip: "Använd en form på cirka 24 cm." },
|
||
{
|
||
text: "Grädda mitt i ugnen tills ytan stelnat men mitten fortfarande är kladdig, cirka 18–20 minuter. Låt kallna helt innan servering.",
|
||
temperatureC: 175,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "chokladbollar",
|
||
titleSv: "Chokladbollar",
|
||
descriptionSv:
|
||
"Klassiska, snabba chokladbollar rullade i kokos – inget bak, bara att röra ihop.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "cookie", "vegetarian", "kid_friendly"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 0,
|
||
portions: 20,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "oats",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "chocolate"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "cocoa", nameSv: "Kakao", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "desiccated_coconut", nameSv: "Kokosflingor", qty: 50, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Rör ihop mjukt smör, socker, kakao och vaniljsocker till en slät smet." },
|
||
{ text: "Blanda i havregrynen och arbeta ihop till en fast massa." },
|
||
{ text: "Rulla bollar och rulla dem i kokos. Låt stelna i kylen minst 30 minuter." },
|
||
],
|
||
},
|
||
{
|
||
slug: "blabarssmulpaj",
|
||
titleSv: "Blåbärssmulpaj",
|
||
descriptionSv:
|
||
"Söta blåbär under ett gyllene smul av smör och havregryn – sommarens självklara paj.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "pie", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 25,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "oats",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "fruity"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 500, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 80, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 80, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Fördela blåbären i en smord form och strö över hälften av sockret." },
|
||
{
|
||
text: "Nyp ihop smör, mjöl, havregryn, vaniljsocker och resten av sockret till ett grovt smul.",
|
||
},
|
||
{
|
||
text: "Fördela smulet över bären och grädda mitt i ugnen tills gyllene, cirka 25 minuter.",
|
||
temperatureC: 200,
|
||
},
|
||
{ text: "Servera ljummen med vispad grädde eller vaniljyoghurt." },
|
||
],
|
||
},
|
||
{
|
||
slug: "sockerkaka",
|
||
titleSv: "Sockerkaka",
|
||
descriptionSv:
|
||
"Luftig, saftig sockerkaka – den enklaste kakan att baka och alltid lika uppskattad till fikat.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "cake", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 40,
|
||
portions: 10,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "vanilla"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 180, unit: "GRAM", optional: false },
|
||
{ ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 1, unit: "DECILITER", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Vispa ägg och socker riktigt pösigt och ljust." },
|
||
{ text: "Smält smöret tillsammans med mjölken och låt svalna något." },
|
||
{
|
||
text: "Vänd ner mjöl, bakpulver och vaniljsocker i äggsmeten och rör sedan i smör och mjölk.",
|
||
},
|
||
{
|
||
text: "Häll smeten i en smord och bröad sockerkaksform och grädda i nedre delen av ugnen tills en sticka kommer ut torr, cirka 40 minuter.",
|
||
temperatureC: 175,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "morotskaka",
|
||
titleSv: "Morotskaka",
|
||
descriptionSv: "Saftig, kryddig morotskaka med valnötter – mumsig till kaffet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "cake", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 20,
|
||
cookMin: 35,
|
||
portions: 12,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: ["carrot"],
|
||
dnaFlavor: ["sweet", "cinnamon", "nutty"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "carrot", nameSv: "Morot", qty: 4, unit: "COUNT", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "rapeseed_oil", nameSv: "Rapsolja", qty: 1.5, unit: "DECILITER", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "cinnamon", nameSv: "Kanel", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "walnut", nameSv: "Valnötter", qty: 75, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Riv morötterna fint. Vispa ägg, socker och olja pösigt." },
|
||
{
|
||
text: "Blanda i mjöl, bakpulver, kanel och vaniljsocker och rör sedan ner morötter och hackade valnötter.",
|
||
},
|
||
{
|
||
text: "Häll smeten i en smord form och grädda mitt i ugnen tills en sticka kommer ut torr, cirka 35 minuter.",
|
||
temperatureC: 175,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "vaniljbullar",
|
||
titleSv: "Vaniljbullar",
|
||
descriptionSv: "Mjuka bullar med vaniljfyllning och pärlsocker – ett annat namn på söndagsmys.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "bun", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 45,
|
||
cookMin: 12,
|
||
portions: 24,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "vanilla", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 650, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false },
|
||
{ ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 175, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "cardamom", nameSv: "Kardemumma", qty: 2, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 20, unit: "GRAM", optional: false },
|
||
{ ing: "pearl_sugar", nameSv: "Pärlsocker", qty: 30, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Smält 75 g smör, rör ner mjölken och värm till fingervarmt. Lös upp jästen i vätskan.",
|
||
},
|
||
{
|
||
text: "Blanda i hälften av sockret, kardemumma, salt och mjölet. Arbeta degen smidig och låt jäsa 40 minuter.",
|
||
},
|
||
{
|
||
text: "Kavla ut, bred på resten av det mjuka smöret och strö över resten av sockret blandat med vaniljsocker.",
|
||
},
|
||
{ text: "Rulla ihop, skär 24 bullar och jäs 30 minuter till." },
|
||
{
|
||
text: "Pensla med uppvispat ägg, strö över pärlsocker och grädda gyllenbruna mitt i ugnen.",
|
||
temperatureC: 225,
|
||
},
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// EFTERRÄTT & FRUKOST/MELLANMÅL (fler alternativ)
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "fruktsallad",
|
||
titleSv: "Fruktsallad",
|
||
descriptionSv: "Fräsch fruktsallad med äpple, päron, apelsin och blåbär – nyttig och snabb.",
|
||
cuisine: "international",
|
||
mealTypes: ["dessert", "snack"],
|
||
tags: ["vegan", "kid_friendly", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "fresh", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "pear", nameSv: "Päron", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "orange", nameSv: "Apelsin", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 100, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Tärna äpple, päron och banan. Skala och dela apelsinen i bitar." },
|
||
{
|
||
text: "Blanda frukten med blåbären och pressa gärna över lite apelsinsaft. Servera direkt.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "rabarberkompott",
|
||
titleSv: "Rabarberkompott",
|
||
descriptionSv: "Syrlig-söt rabarberkompott – god till gröt, yoghurt eller glass.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["vegan", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 15,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["spring", "summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "tart", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "rhubarb", nameSv: "Rabarber", qty: 500, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skölj och skär rabarbern i bitar." },
|
||
{ text: "Lägg rabarber, socker, vaniljsocker och en skvätt vatten i en kastrull." },
|
||
{
|
||
text: "Sjud under lock tills rabarbern faller sönder, cirka 10–15 minuter. Servera ljummen eller kall.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "keso-med-bar-och-notter",
|
||
titleSv: "Keso med bär och nötter",
|
||
descriptionSv: "Proteinrik frukost eller mellanmål: krämig keso med bär, valnötter och honung.",
|
||
cuisine: "international",
|
||
mealTypes: ["breakfast", "snack"],
|
||
tags: ["vegetarian", "high_protein", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 3,
|
||
cookMin: 0,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["creamy", "fruity", "nutty"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "cottage_cheese", nameSv: "Keso", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 75, unit: "GRAM", optional: false },
|
||
{ ing: "raspberry", nameSv: "Hallon", qty: 50, unit: "GRAM", optional: true },
|
||
{ ing: "walnut", nameSv: "Valnötter", qty: 20, unit: "GRAM", optional: false },
|
||
{ ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Lägg upp keson i en skål." },
|
||
{ text: "Toppa med blåbär, hallon, hackade valnötter och en skvätt honung." },
|
||
],
|
||
},
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// LUNCH & MIDDAG (mer variation)
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "tonfiskrora",
|
||
titleSv: "Tonfiskröra på macka",
|
||
descriptionSv: "Snabb och matig tonfiskröra med majs och rödlök – god på rostat bröd.",
|
||
cuisine: "international",
|
||
mealTypes: ["lunch"],
|
||
tags: ["high_protein", "quick", "budget"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "tuna_canned",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "fresh"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "tuna_canned", nameSv: "Tonfisk", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "corn", nameSv: "Majs", qty: 100, unit: "GRAM", optional: true },
|
||
{ ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Låt tonfisken rinna av och blanda med majonnäs, finhackad rödlök och majs." },
|
||
{ text: "Smaka av med svartpeppar och bred på rostat bröd." },
|
||
],
|
||
},
|
||
{
|
||
slug: "couscoussallad",
|
||
titleSv: "Couscoussallad med fetaost",
|
||
descriptionSv: "Matig couscoussallad med krispiga grönsaker, fetaost och citrondressing.",
|
||
cuisine: "international",
|
||
mealTypes: ["lunch", "dinner"],
|
||
tags: ["vegetarian", "budget", "batch_cooking"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 5,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "couscous",
|
||
dnaVegetables: ["tomato", "cucumber"],
|
||
dnaFlavor: ["fresh", "savory"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "couscous", nameSv: "Couscous", qty: 250, unit: "GRAM", optional: false },
|
||
{ ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "tomato", nameSv: "Tomat", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "parsley", nameSv: "Persilja", qty: 10, unit: "GRAM", optional: true },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Koka upp 3 dl vatten, häll över couscousen, lägg på lock och låt svälla 5 minuter. Rör upp med en gaffel.",
|
||
},
|
||
{ text: "Tärna gurka och tomat och smula fetaosten." },
|
||
{ text: "Blanda couscous med grönsaker, olja, pressad citron, hackad persilja och salt." },
|
||
],
|
||
},
|
||
{
|
||
slug: "blomkalssoppa",
|
||
titleSv: "Krämig blomkålssoppa",
|
||
descriptionSv: "Len, matig blomkålssoppa med en klick grädde – god med rostat bröd.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["lunch", "dinner"],
|
||
tags: ["vegetarian", "budget"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove", "blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 20,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["autumn", "winter"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["cauliflower", "onion"],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "cauliflower", nameSv: "Blomkål", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false },
|
||
{
|
||
ing: "vegetable_stock_cube",
|
||
nameSv: "Grönsaksbuljongtärning",
|
||
qty: 2,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{
|
||
ing: "cooking_cream",
|
||
nameSv: "Matlagningsgrädde",
|
||
qty: 1,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Fräs hackad lök och vitlök mjuka i oljan." },
|
||
{
|
||
text: "Tillsätt blomkål i buketter, smulade buljongtärningar och 7 dl vatten. Sjud tills blomkålen är mjuk, cirka 15 minuter.",
|
||
},
|
||
{ text: "Mixa soppan slät, rör i grädden och smaka av med salt och peppar." },
|
||
],
|
||
},
|
||
{
|
||
slug: "ugnsbakad-sotpotatis-kikartor",
|
||
titleSv: "Ugnsbakad sötpotatis med kikärtor",
|
||
descriptionSv:
|
||
"Matig, kryddig plåtmiddag med sötpotatis, kikärtor och fetaost – vegetariskt och mättande.",
|
||
cuisine: "international",
|
||
mealTypes: ["dinner", "lunch"],
|
||
tags: ["vegetarian", "high_protein"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 30,
|
||
portions: 2,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["sweet_potato"],
|
||
dnaFlavor: ["savory", "spiced"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "sweet_potato", nameSv: "Sötpotatis", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "cumin", nameSv: "Spiskummin", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "feta", nameSv: "Fetaost", qty: 100, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Skala och tärna sötpotatisen. Låt kikärtorna rinna av." },
|
||
{
|
||
text: "Blanda sötpotatis och kikärtor med olja, paprikapulver, spiskummin och salt på en plåt.",
|
||
},
|
||
{
|
||
text: "Rosta i ugnen tills sötpotatisen är mjuk och får färg, cirka 30 minuter. Smula över fetaost före servering.",
|
||
temperatureC: 200,
|
||
},
|
||
],
|
||
},
|
||
|
||
// ===========================================================================
|
||
// BATCH: bred påfyllning i alla kategorier (handskrivet, verifierade
|
||
// ingredienser + beräkningsbara enheter, rätt kategori per recept).
|
||
// ===========================================================================
|
||
|
||
// --- FRUKOST ---
|
||
{
|
||
slug: "ostomelett",
|
||
titleSv: "Ostomelett",
|
||
descriptionSv: "Fluffig omelett med riven ost – snabb, mättande frukost eller lunch.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "high_protein", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 3,
|
||
cookMin: 6,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "egg",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 0.5, unit: "DECILITER", optional: false },
|
||
{ ing: "cheese_hard", nameSv: "Hårdost", qty: 50, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 15, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Vispa ihop ägg, mjölk, salt och peppar." },
|
||
{ text: "Smält smöret i en stekpanna på medelvärme och häll i äggen." },
|
||
{
|
||
text: "Låt stelna tills omeletten är genomstekt och inte längre rinnig, strö över osten och vik ihop.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "amerikanska-pannkakor",
|
||
titleSv: "Amerikanska pannkakor",
|
||
descriptionSv: "Tjocka, fluffiga plättar som passar till helgfrukosten. Goda med bär och sylt.",
|
||
cuisine: "international",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "kid_friendly"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 10,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "mild"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Vispa ihop mjöl, bakpulver, socker och salt. Tillsätt ägg och mjölk till en slät smet.",
|
||
},
|
||
{ text: "Rör i det smälta smöret och låt smeten vila 10 minuter." },
|
||
{ text: "Stek pannkakorna gyllene på medelvärme, cirka en minut per sida. Servera med bär." },
|
||
],
|
||
},
|
||
{
|
||
slug: "yoghurt-med-granola-och-bar",
|
||
titleSv: "Yoghurt med granola och bär",
|
||
descriptionSv: "Krämig yoghurt med rostade havregryn, nötter, honung och bär.",
|
||
cuisine: "international",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 0,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["creamy", "sweet", "nutty"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{
|
||
ing: "yoghurt_natural",
|
||
nameSv: "Naturell yoghurt",
|
||
qty: 2,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 75, unit: "GRAM", optional: false },
|
||
{ ing: "walnut", nameSv: "Valnötter", qty: 15, unit: "GRAM", optional: true },
|
||
{ ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Häll upp yoghurten i en skål." },
|
||
{ text: "Toppa med havregryn, blåbär, hackade valnötter och en skvätt honung." },
|
||
],
|
||
},
|
||
{
|
||
slug: "avokadomacka-med-agg",
|
||
titleSv: "Avokadomacka med ägg",
|
||
descriptionSv: "Rostat surdegsbröd med krämig avokado och skivat kokt ägg.",
|
||
cuisine: "international",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["vegetarian", "high_protein"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 8,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fresh", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "avocado", nameSv: "Avokado", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 0.25, unit: "COUNT", optional: true },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Koka äggen hårda i 8 minuter, spola kalla och skala." },
|
||
{ text: "Mosa avokadon med lite citron, salt och peppar och bred på rostat bröd." },
|
||
{ text: "Toppa med skivat ägg och lite extra peppar." },
|
||
],
|
||
},
|
||
{
|
||
slug: "blabarssmoothie",
|
||
titleSv: "Blåbärssmoothie",
|
||
descriptionSv: "Frisk smoothie på blåbär, banan och yoghurt – snabb energi på morgonen.",
|
||
cuisine: "international",
|
||
mealTypes: ["breakfast", "snack"],
|
||
tags: ["vegetarian", "kid_friendly", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: ["blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false },
|
||
{
|
||
ing: "yoghurt_natural",
|
||
nameSv: "Naturell yoghurt",
|
||
qty: 2,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "oat_drink", nameSv: "Havredryck", qty: 1, unit: "DECILITER", optional: true },
|
||
{ ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [{ text: "Mixa alla ingredienser slätt och häll upp i glas." }],
|
||
},
|
||
|
||
// --- LUNCH ---
|
||
{
|
||
slug: "broccolisoppa",
|
||
titleSv: "Krämig broccolisoppa",
|
||
descriptionSv: "Len broccolisoppa med potatis och en klick grädde. Snabb vardagslunch.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["lunch", "dinner"],
|
||
tags: ["vegetarian", "budget", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove", "blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 20,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["broccoli", "potato"],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "broccoli", nameSv: "Broccoli", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "potato", nameSv: "Potatis", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 1, unit: "COUNT", optional: false },
|
||
{
|
||
ing: "vegetable_stock_cube",
|
||
nameSv: "Grönsaksbuljongtärning",
|
||
qty: 2,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{
|
||
ing: "cooking_cream",
|
||
nameSv: "Matlagningsgrädde",
|
||
qty: 1,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Fräs hackad lök och vitlök mjuka. Tillsätt tärnad potatis, broccolibuketter, buljongtärningar och 8 dl vatten.",
|
||
},
|
||
{ text: "Sjud tills grönsakerna är mjuka, cirka 15 minuter." },
|
||
{ text: "Mixa slätt, rör i grädden och smaka av med salt och peppar." },
|
||
],
|
||
},
|
||
{
|
||
slug: "grekisk-sallad-med-feta",
|
||
titleSv: "Grekisk sallad med feta",
|
||
descriptionSv: "Fräsch sallad med tomat, gurka, rödlök, oliver och fetaost.",
|
||
cuisine: "greek",
|
||
mealTypes: ["lunch"],
|
||
tags: ["vegetarian", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["tomato", "cucumber"],
|
||
dnaFlavor: ["fresh", "savory"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "tomato", nameSv: "Tomat", qty: 3, unit: "COUNT", optional: false },
|
||
{ ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "olives", nameSv: "Oliver", qty: 50, unit: "GRAM", optional: true },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "oregano_dried", nameSv: "Oregano", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skär tomat och gurka i bitar och skiva rödlöken tunt." },
|
||
{ text: "Blanda grönsakerna med oliver, ringla över olivolja och strö över oregano." },
|
||
{ text: "Toppa med fetaost i bit eller smulad." },
|
||
],
|
||
},
|
||
{
|
||
slug: "kycklingwrap",
|
||
titleSv: "Kycklingwrap",
|
||
descriptionSv: "Mjuk tortilla med stekt kyckling, krispig sallad och krämig dressing.",
|
||
cuisine: "international",
|
||
mealTypes: ["lunch"],
|
||
tags: ["high_protein", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 10,
|
||
portions: 2,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "chicken_breast",
|
||
dnaVegetables: ["lettuce", "tomato"],
|
||
dnaFlavor: ["savory", "fresh"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "tortilla", nameSv: "Tortillabröd", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 250, unit: "GRAM", optional: false },
|
||
{ ing: "lettuce", nameSv: "Sallad", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "tomato", nameSv: "Tomat", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skär kycklingen i strimlor, krydda med paprikapulver och salt." },
|
||
{ text: "Stek i olja tills kycklingen är genomstekt och inte längre rosa i mitten." },
|
||
{
|
||
text: "Fyll tortillabröden med sallad, tomat, kyckling och en klick majonnäs och rulla ihop.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "tomat-och-linssoppa",
|
||
titleSv: "Tomat- och linssoppa",
|
||
descriptionSv: "Matig soppa på röda linser och tomat med värmande spiskummin.",
|
||
cuisine: "international",
|
||
mealTypes: ["lunch", "dinner"],
|
||
tags: ["vegan", "budget", "batch_cooking"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 25,
|
||
portions: 4,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["tomato", "onion"],
|
||
dnaFlavor: ["savory", "spiced"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "red_lentils", nameSv: "Röda linser", qty: 200, unit: "GRAM", optional: false },
|
||
{
|
||
ing: "canned_tomatoes",
|
||
nameSv: "Krossade tomater",
|
||
qty: 1,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false },
|
||
{
|
||
ing: "vegetable_stock_cube",
|
||
nameSv: "Grönsaksbuljongtärning",
|
||
qty: 2,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{ ing: "cumin", nameSv: "Spiskummin", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Fräs hackad lök, vitlök och spiskummin mjuka i oljan." },
|
||
{ text: "Tillsätt sköljda linser, krossade tomater, buljongtärningar och 7 dl vatten." },
|
||
{ text: "Sjud tills linserna är mjuka, cirka 20 minuter. Smaka av med salt." },
|
||
],
|
||
},
|
||
{
|
||
slug: "varm-skinkmacka",
|
||
titleSv: "Varm skinkmacka",
|
||
descriptionSv: "Rostad macka med skinka, ost och tomat – snabb och matig.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["lunch", "breakfast"],
|
||
tags: ["high_protein", "quick"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 8,
|
||
portions: 1,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "cooked_ham", nameSv: "Skinka", qty: 60, unit: "GRAM", optional: false },
|
||
{ ing: "cheese_hard", nameSv: "Hårdost", qty: 60, unit: "GRAM", optional: false },
|
||
{ ing: "tomato", nameSv: "Tomat", qty: 1, unit: "COUNT", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Lägg skinka, skivad tomat och riven ost på brödet." },
|
||
{ text: "Gratinera i ugnen tills osten smält och fått färg, cirka 6–8 minuter." },
|
||
],
|
||
},
|
||
|
||
// --- MELLANMÅL ---
|
||
{
|
||
slug: "hummus",
|
||
titleSv: "Hummus på kikärtor",
|
||
descriptionSv: "Krämig kikärtsröra med vitlök, citron och olivolja. Gott att doppa i.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegan", "high_protein", "budget"],
|
||
methods: ["no_cook"],
|
||
equipment: ["blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 400, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 3, unit: "TABLESPOON", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "cumin", nameSv: "Spiskummin", qty: 1, unit: "TEASPOON", optional: true },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skölj och låt kikärtorna rinna av." },
|
||
{
|
||
text: "Mixa kikärtor, olivolja, vitlök, pressad citron, spiskummin och salt slätt. Späd med lite vatten om det behövs.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "gronsaksstavar-med-dipp",
|
||
titleSv: "Grönsaksstavar med dipp",
|
||
descriptionSv: "Krispiga morots-, gurk- och paprikastavar med krämig örtdipp.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegetarian", "kid_friendly", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: ["carrot", "cucumber"],
|
||
dnaFlavor: ["fresh", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "carrot", nameSv: "Morot", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false },
|
||
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 1, unit: "DECILITER", optional: false },
|
||
{ ing: "dill", nameSv: "Dill", qty: 5, unit: "GRAM", optional: true },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skär morot, gurka och paprika i stavar." },
|
||
{ text: "Rör ihop crème fraiche med hackad dill och salt till en dipp." },
|
||
],
|
||
},
|
||
{
|
||
slug: "notmix",
|
||
titleSv: "Nöt- och fruktmix",
|
||
descriptionSv: "Energigivande blandning av nötter, russin och bitar av mörk choklad.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegan", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 3,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["nutty", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "walnut", nameSv: "Valnötter", qty: 60, unit: "GRAM", optional: false },
|
||
{ ing: "hazelnut", nameSv: "Hasselnötter", qty: 60, unit: "GRAM", optional: false },
|
||
{ ing: "raisins", nameSv: "Russin", qty: 50, unit: "GRAM", optional: false },
|
||
{ ing: "dark_chocolate", nameSv: "Mörk choklad", qty: 40, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [{ text: "Blanda nötter, russin och grovhackad choklad. Förvara i en burk." }],
|
||
},
|
||
{
|
||
slug: "fruktspett",
|
||
titleSv: "Fruktspett",
|
||
descriptionSv: "Färgglada spett med jordgubbar, banan, äpple och vindruvor.",
|
||
cuisine: "international",
|
||
mealTypes: ["snack"],
|
||
tags: ["vegan", "kid_friendly", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "fresh"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "strawberry", nameSv: "Jordgubbar", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "grape", nameSv: "Vindruvor", qty: 150, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [{ text: "Skär frukten i bitar och trä upp på spett. Servera direkt." }],
|
||
},
|
||
|
||
// --- EFTERRÄTT ---
|
||
{
|
||
slug: "chokladdoppade-jordgubbar",
|
||
titleSv: "Chokladdoppade jordgubbar",
|
||
descriptionSv: "Söta jordgubbar doppade i smält mörk choklad – enkel och festlig efterrätt.",
|
||
cuisine: "international",
|
||
mealTypes: ["dessert"],
|
||
tags: ["vegetarian", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 5,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "chocolate", "fruity"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "strawberry", nameSv: "Jordgubbar", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "dark_chocolate", nameSv: "Mörk choklad", qty: 150, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Smält chokladen försiktigt i vattenbad." },
|
||
{
|
||
text: "Doppa jordgubbarna till hälften i chokladen och lägg på bakplåtspapper tills chokladen stelnat.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "hallonsorbet",
|
||
titleSv: "Hallonsorbet",
|
||
descriptionSv: "Frisk, iskall sorbet på hallon – helt utan mejeri.",
|
||
cuisine: "international",
|
||
mealTypes: ["dessert"],
|
||
tags: ["vegan", "kid_friendly"],
|
||
methods: ["no_cook"],
|
||
equipment: ["blender"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "sweet", "tart"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "raspberry", nameSv: "Hallon", qty: 500, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Mixa frysta hallon med socker och pressad citron till en slät sorbet." },
|
||
{ text: "Servera direkt eller frys in och rör om då och då." },
|
||
],
|
||
},
|
||
{
|
||
slug: "chokladpudding",
|
||
titleSv: "Chokladpudding",
|
||
descriptionSv: "Krämig, kokt chokladpudding – barnens favorit till efterrätt.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["vegetarian", "kid_friendly"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 10,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "chocolate", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 6, unit: "DECILITER", optional: false },
|
||
{ ing: "cocoa", nameSv: "Kakao", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 80, unit: "GRAM", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Vispa ihop kakao, socker, mjöl och vaniljsocker med lite av mjölken till en slät smet.",
|
||
},
|
||
{
|
||
text: "Koka upp resten av mjölken, rör i smeten och sjud under omrörning tills puddingen tjocknar.",
|
||
},
|
||
{ text: "Häll upp i formar och låt kallna." },
|
||
],
|
||
},
|
||
{
|
||
slug: "appelkompott",
|
||
titleSv: "Äppelkompott",
|
||
descriptionSv: "Mjuk, kaneldoftande äppelkompott – god till gröt, glass eller pannkakor.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["vegan", "quick"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 15,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["autumn"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "cinnamon", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "apple", nameSv: "Äpple", qty: 5, unit: "COUNT", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 60, unit: "GRAM", optional: false },
|
||
{ ing: "cinnamon", nameSv: "Kanel", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Skala och tärna äpplena." },
|
||
{
|
||
text: "Sjud äpplen, socker, kanel, vaniljsocker och en skvätt vatten under lock tills äpplena är mjuka, cirka 10–15 minuter.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "bar-med-vaniljyoghurt",
|
||
titleSv: "Bär med vaniljyoghurt",
|
||
descriptionSv: "Färska bär med len vaniljyoghurt och en skvätt honung.",
|
||
cuisine: "international",
|
||
mealTypes: ["dessert", "snack"],
|
||
tags: ["vegetarian", "quick"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 0,
|
||
portions: 2,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["fruity", "creamy", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "strawberry", nameSv: "Jordgubbar", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 100, unit: "GRAM", optional: false },
|
||
{
|
||
ing: "yoghurt_natural",
|
||
nameSv: "Naturell yoghurt",
|
||
qty: 3,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Rör ihop yoghurten med vaniljsocker." },
|
||
{ text: "Toppa med bären och en skvätt honung." },
|
||
],
|
||
},
|
||
|
||
// --- BAKA (sub-typer: bread/bun/pie/cake/cookie) ---
|
||
{
|
||
slug: "vitt-formbrod",
|
||
titleSv: "Vitt formbröd",
|
||
descriptionSv: "Saftigt formbröd som är lätt att baka och perfekt till frukost och mackor.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["baking", "bread", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 30,
|
||
cookMin: 30,
|
||
portions: 16,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["bread", "mild"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 700, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 4, unit: "DECILITER", optional: false },
|
||
{ ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 50, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 20, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Smält smöret, rör ner mjölken och värm till fingervarmt. Lös upp jästen." },
|
||
{ text: "Tillsätt salt, socker och mjöl och arbeta degen smidig. Jäs 40 minuter." },
|
||
{ text: "Forma till ett bröd, lägg i smord form och jäs 30 minuter till." },
|
||
{
|
||
text: "Grädda i nedre delen av ugnen tills brödet låter ihåligt när man knackar på undersidan.",
|
||
temperatureC: 200,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "scones",
|
||
titleSv: "Scones",
|
||
descriptionSv: "Snabba frukostscones utan jäsning – klara på en kvart.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["breakfast"],
|
||
tags: ["baking", "bread", "vegetarian", "quick"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 12,
|
||
portions: 8,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["bread", "mild"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "baking_powder", nameSv: "Bakpulver", qty: 15, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 50, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 15, unit: "GRAM", optional: true },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Blanda mjöl, bakpulver, salt och socker. Nyp ihop med smöret till en smulig massa.",
|
||
},
|
||
{ text: "Rör i mjölken till en lös deg. Forma två runda kakor och skär kryss i dem." },
|
||
{ text: "Grädda högt upp i ugnen tills gyllene, cirka 10–12 minuter.", temperatureC: 250 },
|
||
],
|
||
},
|
||
{
|
||
slug: "havreflarn",
|
||
titleSv: "Havreflarn",
|
||
descriptionSv: "Frasiga, gyllene havrekakor – enkla att baka och svåra att sluta äta.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "cookie", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 10,
|
||
portions: 20,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "oats",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "baking_powder", nameSv: "Bakpulver", qty: 5, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Rör ihop smält smör med socker, ägg och vaniljsocker." },
|
||
{ text: "Blanda i havregryn, mjöl och bakpulver." },
|
||
{
|
||
text: "Klicka ut små högar med god plats emellan och grädda gyllene, cirka 8–10 minuter.",
|
||
temperatureC: 175,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "blabarsmuffins",
|
||
titleSv: "Blåbärsmuffins",
|
||
descriptionSv: "Saftiga muffins fyllda med blåbär – perfekta till fikat eller matlådan.",
|
||
cuisine: "international",
|
||
mealTypes: ["dessert", "snack"],
|
||
tags: ["baking", "cake", "vegetarian", "kid_friendly"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 20,
|
||
portions: 12,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "fruity"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 250, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "milk_3", nameSv: "Mjölk", qty: 1, unit: "DECILITER", optional: false },
|
||
{ ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "blueberry", nameSv: "Blåbär", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Vispa ägg och socker pösigt. Rör i smält smör och mjölk." },
|
||
{ text: "Vänd ner mjöl, bakpulver och vaniljsocker och sist blåbären." },
|
||
{
|
||
text: "Fördela i muffinsformar och grädda tills gyllene, cirka 20 minuter.",
|
||
temperatureC: 175,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "chokladtarta",
|
||
titleSv: "Chokladtårta",
|
||
descriptionSv: "Riktigt chokladig, saftig tårta för den som älskar choklad. Godast med grädde.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "cake", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "medium",
|
||
prepMin: 20,
|
||
cookMin: 30,
|
||
portions: 12,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["fika", "alla-hjartans-dag"],
|
||
variantType: "standard",
|
||
dnaCarb: "flour_wheat",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "chocolate"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "dark_chocolate", nameSv: "Mörk choklad", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 120, unit: "GRAM", optional: false },
|
||
{ ing: "cocoa", nameSv: "Kakao", qty: 20, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Smält choklad och smör tillsammans och låt svalna något." },
|
||
{ text: "Vispa ägg och socker pösigt och rör ner chokladsmeten." },
|
||
{ text: "Vänd i mjöl, kakao och vaniljsocker. Häll i smord form." },
|
||
{
|
||
text: "Grädda tills ytan stelnat men mitten är kladdig, cirka 25–30 minuter.",
|
||
temperatureC: 175,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "rabarberpaj",
|
||
titleSv: "Rabarberpaj",
|
||
descriptionSv: "Syrlig rabarber under ett gyllene smuldeg-lock – vårens klassiker.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dessert"],
|
||
tags: ["baking", "pie", "vegetarian"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 25,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["spring", "summer"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "oats",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["sweet", "tart"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "rhubarb", nameSv: "Rabarber", qty: 500, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "oats", nameSv: "Havregryn", qty: 80, unit: "GRAM", optional: false },
|
||
{ ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skär rabarbern i bitar och lägg i en smord form med hälften av sockret." },
|
||
{ text: "Nyp ihop smör, mjöl, havregryn, vaniljsocker och resten av sockret till ett smul." },
|
||
{
|
||
text: "Fördela smulet över rabarbern och grädda gyllene, cirka 25 minuter.",
|
||
temperatureC: 200,
|
||
},
|
||
],
|
||
},
|
||
|
||
// --- MIDDAG ---
|
||
{
|
||
slug: "ugnsbakad-lax-med-potatis",
|
||
titleSv: "Ugnsbakad lax med potatis",
|
||
descriptionSv: "Saftig laxfilé i ugn med citron och dill, serverad med kokt potatis.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dinner"],
|
||
tags: ["high_protein"],
|
||
methods: ["oven"],
|
||
equipment: ["oven", "stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 25,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "salmon",
|
||
dnaVegetables: ["potato"],
|
||
dnaFlavor: ["savory", "fresh"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "salmon", nameSv: "Laxfilé", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "potato", nameSv: "Potatis", qty: 8, unit: "COUNT", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "dill", nameSv: "Dill", qty: 10, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Koka potatisen mjuk i saltat vatten." },
|
||
{
|
||
text: "Lägg laxen i en smord ugnsform, salta och peppra, toppa med smörklickar och citronskivor.",
|
||
},
|
||
{
|
||
text: "Baka i ugnen tills laxen är genomstekt och flagnar lätt, cirka 15–18 minuter. Strö över dill och servera med potatisen.",
|
||
temperatureC: 200,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "kremig-kycklinggryta",
|
||
titleSv: "Krämig kycklinggryta med svamp",
|
||
descriptionSv: "Mustig gryta med kyckling, champinjoner och grädde. Servera med ris.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dinner"],
|
||
tags: ["high_protein"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 25,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["autumn"],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "chicken_thigh",
|
||
dnaVegetables: ["mushroom"],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "chicken_thigh", nameSv: "Kycklinglårfilé", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "mushroom", nameSv: "Champinjoner", qty: 250, unit: "GRAM", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false },
|
||
{
|
||
ing: "cooking_cream",
|
||
nameSv: "Matlagningsgrädde",
|
||
qty: 3,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{
|
||
ing: "chicken_stock_cube",
|
||
nameSv: "Kycklingbuljongtärning",
|
||
qty: 1,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{ ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "thyme_dried", nameSv: "Timjan", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Bryn kycklingbitarna runt om i en gryta. Tillsätt lök, vitlök och champinjoner och fräs med.",
|
||
},
|
||
{
|
||
text: "Häll i grädde, smulad buljongtärning, timjan och salt. Sjud tills kycklingen är genomstekt, cirka 15 minuter.",
|
||
},
|
||
{ text: "Koka riset enligt anvisning och servera till grytan." },
|
||
],
|
||
},
|
||
{
|
||
slug: "pastagratang-med-gronsaker",
|
||
titleSv: "Pastagratäng med grönsaker",
|
||
descriptionSv: "Matig, ostgratinerad pastarätt med tomatsås och grönsaker.",
|
||
cuisine: "italian",
|
||
mealTypes: ["dinner"],
|
||
tags: ["vegetarian", "batch_cooking"],
|
||
methods: ["oven", "stovetop"],
|
||
equipment: ["oven", "stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 30,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaCarb: "pasta_dry",
|
||
dnaVegetables: ["zucchini", "bell_pepper"],
|
||
dnaFlavor: ["savory", "cheesy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "pasta_dry", nameSv: "Pasta", qty: 400, unit: "GRAM", optional: false },
|
||
{
|
||
ing: "canned_tomatoes",
|
||
nameSv: "Krossade tomater",
|
||
qty: 1,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{ ing: "zucchini", nameSv: "Zucchini", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "cheese_hard", nameSv: "Hårdost", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Koka pastan al dente. Fräs lök, vitlök, paprika och zucchini mjuka i oljan." },
|
||
{ text: "Tillsätt krossade tomater och salt och låt puttra några minuter." },
|
||
{
|
||
text: "Blanda pasta och sås i en ugnsform, toppa med riven ost och gratinera tills gyllene.",
|
||
temperatureC: 225,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "fiskgryta-med-kokos",
|
||
titleSv: "Fiskgryta med kokos",
|
||
descriptionSv: "Mild, krämig gryta med torsk, tomat och kokosmjölk. Servera med ris.",
|
||
cuisine: "thai",
|
||
mealTypes: ["dinner"],
|
||
tags: ["high_protein"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 20,
|
||
portions: 4,
|
||
spiceLevel: 2,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: [],
|
||
variantType: "standard",
|
||
dnaProtein: "cod",
|
||
dnaVegetables: ["tomato"],
|
||
dnaFlavor: ["savory", "creamy", "spiced"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "cod", nameSv: "Torskfilé", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "coconut_milk", nameSv: "Kokosmjölk", qty: 4, unit: "DECILITER", optional: false },
|
||
{
|
||
ing: "canned_tomatoes",
|
||
nameSv: "Krossade tomater",
|
||
qty: 1,
|
||
unit: "COUNT",
|
||
optional: false,
|
||
},
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "red_curry_paste", nameSv: "Röd currypasta", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Fräs lök, vitlök och currypasta. Tillsätt kokosmjölk och krossade tomater och koka upp.",
|
||
},
|
||
{
|
||
text: "Lägg i torsken i bitar och sjud tills fisken är genomkokt och flagnar, cirka 8 minuter.",
|
||
},
|
||
{ text: "Smaka av med salt och servera med kokt ris." },
|
||
],
|
||
},
|
||
{
|
||
slug: "korv-och-potatisgratang",
|
||
titleSv: "Korv- och potatisgratäng",
|
||
descriptionSv: "Snabb, barnvänlig gratäng med falukorv, potatis och gräddig ost.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dinner"],
|
||
tags: ["kid_friendly", "budget"],
|
||
methods: ["oven"],
|
||
equipment: ["oven"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 40,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: [],
|
||
holidayTags: ["oktoberfest"],
|
||
variantType: "standard",
|
||
dnaProtein: "falukorv",
|
||
dnaVegetables: ["potato"],
|
||
dnaFlavor: ["savory", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "falukorv", nameSv: "Falukorv", qty: 400, unit: "GRAM", optional: false },
|
||
{ ing: "potato", nameSv: "Potatis", qty: 8, unit: "COUNT", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{
|
||
ing: "cooking_cream",
|
||
nameSv: "Matlagningsgrädde",
|
||
qty: 3,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{ ing: "cheese_hard", nameSv: "Hårdost", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skiva potatis, lök och falukorv. Varva i en smord ugnsform." },
|
||
{ text: "Häll över grädde blandat med salt och peppar och toppa med riven ost." },
|
||
{
|
||
text: "Gratinera i ugnen tills potatisen är mjuk och ytan gyllene, cirka 40 minuter.",
|
||
temperatureC: 200,
|
||
},
|
||
],
|
||
},
|
||
// ---------------------------------------------------------------------------
|
||
// HÖGTIDER (spec §28) – recept taggade med exakt högtids-slug (SE-marknad) så
|
||
// "Vad ska vi äta?"-högtidsknapparna alltid visar relevant mat. Slugs måste
|
||
// matcha seasonEvents.ts exakt: jul, midsommar, påsk, nyår, kraftskiva,
|
||
// grillsasong, skolstart, surstromming (ASCII – inte "grillsäsong"!).
|
||
// ---------------------------------------------------------------------------
|
||
{
|
||
slug: "rodbetssallad",
|
||
titleSv: "Klassisk rödbetssallad",
|
||
descriptionSv:
|
||
"Krämig rödbetssallad med äpple – det självklara röda inslaget på jul- och påskbordet, gott till skinka och sill.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "starter"],
|
||
tags: ["vegetarian", "gluten_free"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 0,
|
||
portions: 8,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["winter"],
|
||
holidayTags: ["jul", "påsk", "nyår"],
|
||
variantType: "standard",
|
||
dnaVegetables: ["beetroot", "apple"],
|
||
dnaFlavor: ["sweet", "sour", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "beetroot", nameSv: "Inlagda rödbetor", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 2, unit: "DECILITER", optional: false },
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Låt rödbetorna rinna av ordentligt i ett durkslag och tärna dem smått." },
|
||
{ text: "Kärna ur och tärna äpplet lika smått som rödbetorna." },
|
||
{ text: "Rör ihop crème fraiche och majonnäs och vänd försiktigt ner rödbetor och äpple." },
|
||
{
|
||
text: "Smaka av med salt och peppar. Låt gärna stå kallt en timme så smakerna sätter sig.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "rodkal",
|
||
titleSv: "Långkokt rödkål",
|
||
descriptionSv:
|
||
"Mjuk, sötsyrlig rödkål som får puttra med äpple och lite balsamvinäger – ett givet tillbehör på julbordet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet"],
|
||
tags: ["vegetarian", "gluten_free", "budget"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "easy",
|
||
prepMin: 15,
|
||
cookMin: 45,
|
||
portions: 8,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["winter"],
|
||
holidayTags: ["jul", "nyår"],
|
||
variantType: "standard",
|
||
dnaVegetables: ["red_cabbage", "apple"],
|
||
dnaFlavor: ["sweet", "sour", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "red_cabbage", nameSv: "Rödkål", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Socker", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "balsamic_vinegar", nameSv: "Balsamvinäger", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Strimla rödkålen fint och riv eller tärna äpplet." },
|
||
{ text: "Smält smöret i en vid gryta och lägg i rödkål och äpple. Låt fräsa några minuter." },
|
||
{ text: "Tillsätt socker, balsamvinäger och salt samt ett par matskedar vatten." },
|
||
{
|
||
text: "Lägg på lock och låt sjuda på svag värme tills kålen är mjuk och blank, cirka 40 minuter. Rör om då och då.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "senapssill",
|
||
titleSv: "Senapssill",
|
||
descriptionSv:
|
||
"Inlagd sill i len senapssås med dill – en av de självklara sillsorterna till jul, påsk och midsommar.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "starter"],
|
||
tags: ["gluten_free", "high_protein"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["winter", "summer"],
|
||
holidayTags: ["jul", "påsk", "midsommar", "nyår"],
|
||
variantType: "standard",
|
||
dnaProtein: "pickled_herring",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["tangy", "mustard", "dill"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "pickled_herring", nameSv: "Inlagd sill", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "mustard", nameSv: "Sötstark senap", qty: 60, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Socker", qty: 25, unit: "GRAM", optional: false },
|
||
{ ing: "cream", nameSv: "Grädde", qty: 1, unit: "DECILITER", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Rapsolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "dill", nameSv: "Dill", qty: 20, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Låt sillbitarna rinna av och skär dem i lagom munsbitar." },
|
||
{
|
||
text: "Vispa ihop senap, socker och olja till en slät röra. Vispa ner grädden så såsen blir krämig.",
|
||
},
|
||
{ text: "Hacka dillen och rör ner det mesta i såsen." },
|
||
{
|
||
text: "Vänd ner sillen, toppa med resten av dillen och låt stå kallt minst en timme före servering.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "stekt-prinskorv",
|
||
titleSv: "Stekta prinskorvar",
|
||
descriptionSv:
|
||
"Gyllene, knapriga prinskorvar stekta i smör – julbordets favorit bland både barn och vuxna.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet"],
|
||
tags: ["kid_friendly", "quick", "gluten_free"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 5,
|
||
cookMin: 10,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["winter"],
|
||
holidayTags: ["jul", "nyår"],
|
||
variantType: "standard",
|
||
dnaProtein: "prinskorv",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "prinskorv", nameSv: "Prinskorv", qty: 400, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Klipp eventuellt av korvarna från varandra och snitta dem lätt om du vill." },
|
||
{ text: "Smält smöret i en stekpanna på medelvärme." },
|
||
{
|
||
text: "Stek prinskorvarna under omrörning tills de är gyllene och genomvarma, cirka 8 minuter. Servera direkt.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "kokta-kraftor-med-dill",
|
||
titleSv: "Kokta kräftor med krondill",
|
||
descriptionSv:
|
||
"Kräftor kokta i klassisk dillag med socker och salt – själva mittpunkten på kräftskivan i augusti.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "dinner"],
|
||
tags: ["high_protein", "gluten_free", "luxury"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "medium",
|
||
prepMin: 15,
|
||
cookMin: 15,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: ["summer", "autumn"],
|
||
holidayTags: ["kraftskiva"],
|
||
variantType: "standard",
|
||
dnaProtein: "crayfish",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["dill", "briny", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "crayfish", nameSv: "Kräftor", qty: 1000, unit: "GRAM", optional: false },
|
||
{ ing: "dill", nameSv: "Krondill", qty: 50, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "sugar", nameSv: "Socker", qty: 20, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Koka upp cirka 2 liter vatten med salt, socker och hälften av krondillen. Låt lagen sjuda 10 minuter så smaken sätter sig.",
|
||
},
|
||
{ text: "Lägg i kräftorna, koka upp igen och låt sjuda cirka 6–8 minuter." },
|
||
{ text: "Ta grytan från värmen och lägg i resten av krondillen." },
|
||
{
|
||
text: "Låt kräftorna kallna i lagen, gärna över natten i kylen, så de får full dillsmak. Servera väl kylda.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "aioli-till-skaldjur",
|
||
titleSv: "Vitlöksaioli",
|
||
descriptionSv:
|
||
"Slät, vitlöksstark aioli som passar perfekt till kräftor, räkor och västerbottenpaj på skaldjursbordet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "starter"],
|
||
tags: ["vegetarian", "gluten_free"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 8,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: ["kraftskiva", "nyår", "grillsasong"],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["garlic", "creamy", "tangy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: true },
|
||
],
|
||
steps: [
|
||
{ text: "Pressa eller riv vitlöken fint." },
|
||
{ text: "Rör ihop majonnäs, vitlök och olivolja till en slät kräm." },
|
||
{
|
||
text: "Smaka av med pressad citron och salt. Låt stå kallt minst 30 minuter innan servering.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "ostbricka-till-kraftskivan",
|
||
titleSv: "Ostbricka med västerbottensost",
|
||
descriptionSv:
|
||
"En enkel ostbricka med kraftig västerbottensost, lagrad hårdost, druvor och valnötter – det goda avslutet på kräftskivan.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "snack"],
|
||
tags: ["vegetarian"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 0,
|
||
portions: 8,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer", "autumn"],
|
||
holidayTags: ["kraftskiva", "nyår"],
|
||
variantType: "standard",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "nutty", "sweet"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{
|
||
ing: "vasterbotten_cheese",
|
||
nameSv: "Västerbottensost",
|
||
qty: 200,
|
||
unit: "GRAM",
|
||
optional: false,
|
||
},
|
||
{ ing: "cheese_hard", nameSv: "Lagrad hårdost", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "grape", nameSv: "Vindruvor", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "walnut", nameSv: "Valnötter", qty: 50, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Ta fram ostarna en stund före servering så de får rumstemperatur och full smak." },
|
||
{ text: "Skär ostarna i bitar eller klyftor och lägg upp på en bricka." },
|
||
{
|
||
text: "Skölj druvorna och dela dem i mindre klasar. Fördela dem och valnötterna på brickan.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "farskpotatis-med-dill",
|
||
titleSv: "Färskpotatis med smör och dill",
|
||
descriptionSv:
|
||
"Nykokt färskpotatis vänd i smör och färsk dill – midsommarbordets doftande självklarhet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "lunch", "dinner"],
|
||
tags: ["vegetarian", "gluten_free", "budget"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 10,
|
||
cookMin: 20,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: ["midsommar"],
|
||
variantType: "standard",
|
||
dnaCarb: "new_potato",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["dill", "buttery"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "new_potato", nameSv: "Färskpotatis", qty: 800, unit: "GRAM", optional: false },
|
||
{ ing: "butter", nameSv: "Smör", qty: 40, unit: "GRAM", optional: false },
|
||
{ ing: "dill", nameSv: "Dill", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 2, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Borsta färskpotatisen ren och koka den i lättsaltat vatten tills den är mjuk, cirka 18 minuter.",
|
||
},
|
||
{ text: "Häll av vattnet och låt potatisen ånga av." },
|
||
{
|
||
text: "Vänd ner smöret så det smälter runt potatisen och strö över rikligt med hackad dill. Salta efter smak.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "agghalvor-med-rakror",
|
||
titleSv: "Ägghalvor med räkröra",
|
||
descriptionSv:
|
||
"Kokta ägg toppade med krämig räkröra och dill – en klassiker på påskbordet och det kalla buffébordet.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "starter"],
|
||
tags: ["high_protein", "gluten_free"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "easy",
|
||
prepMin: 15,
|
||
cookMin: 10,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["spring"],
|
||
holidayTags: ["påsk", "nyår"],
|
||
variantType: "standard",
|
||
dnaProtein: "egg",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["creamy", "dill", "briny"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "egg", nameSv: "Ägg", qty: 6, unit: "COUNT", optional: false },
|
||
{ ing: "shrimp", nameSv: "Räkor", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 80, unit: "GRAM", optional: false },
|
||
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 1, unit: "DECILITER", optional: false },
|
||
{ ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Hårdkoka äggen cirka 8 minuter, spola kalla och skala dem. Dela dem på längden." },
|
||
{ text: "Blanda majonnäs och crème fraiche och vänd ner de flesta räkorna och hackad dill." },
|
||
{ text: "Klicka räkröran på ägghalvorna och toppa med resten av räkorna och lite dill." },
|
||
],
|
||
},
|
||
{
|
||
slug: "rakcocktail",
|
||
titleSv: "Räkcocktail",
|
||
descriptionSv:
|
||
"Handskalade räkor på frisk sallad med len röd cocktailsås – en elegant förrätt till nyår och fest.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["starter", "buffet"],
|
||
tags: ["high_protein", "luxury", "gluten_free"],
|
||
methods: ["no_cook"],
|
||
equipment: [],
|
||
difficulty: "easy",
|
||
prepMin: 15,
|
||
cookMin: 0,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["winter"],
|
||
holidayTags: ["nyår", "påsk"],
|
||
variantType: "standard",
|
||
dnaProtein: "shrimp",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["creamy", "tangy", "briny"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "shrimp", nameSv: "Handskalade räkor", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "lettuce", nameSv: "Isbergssallad", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 100, unit: "GRAM", optional: false },
|
||
{ ing: "tomato_paste", nameSv: "Tomatpuré", qty: 30, unit: "GRAM", optional: false },
|
||
{ ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Strimla salladen fint och fördela i portionsglas." },
|
||
{
|
||
text: "Rör ihop majonnäs och tomatpuré till en slät rosa sås och smaka av med pressad citron.",
|
||
},
|
||
{ text: "Lägg räkorna på salladen, klicka på såsen och toppa med en citronklyfta." },
|
||
],
|
||
},
|
||
{
|
||
slug: "grillspett-med-halloumi",
|
||
titleSv: "Grillspett med halloumi och grönsaker",
|
||
descriptionSv:
|
||
"Färgglada grillspett med halloumi, paprika och zucchini – enkelt och vegetariskt på grillkvällen.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dinner", "lunch"],
|
||
tags: ["vegetarian", "gluten_free", "quick"],
|
||
methods: ["grill"],
|
||
equipment: ["grill"],
|
||
difficulty: "easy",
|
||
prepMin: 15,
|
||
cookMin: 10,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: ["grillsasong", "valborg"],
|
||
variantType: "standard",
|
||
dnaProtein: "halloumi",
|
||
dnaVegetables: ["bell_pepper", "zucchini"],
|
||
dnaFlavor: ["savory", "smoky", "salty"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "halloumi", nameSv: "Halloumi", qty: 250, unit: "GRAM", optional: false },
|
||
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "zucchini", nameSv: "Zucchini", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Skär halloumi, paprika och zucchini i jämnstora bitar." },
|
||
{ text: "Trä omväxlande halloumi och grönsaker på spett och pensla med olivolja." },
|
||
{
|
||
text: "Grilla spetten på medelvärme och vänd dem tills halloumin fått fin färg och grönsakerna mjuknat, cirka 8 minuter.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "grillad-kycklingfile",
|
||
titleSv: "Grillad kycklingfilé med paprika",
|
||
descriptionSv:
|
||
"Saftig kycklingfilé marinerad i olivolja, vitlök och paprikapulver – en trygg favorit hela grillsäsongen.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["dinner", "lunch"],
|
||
tags: ["high_protein", "gluten_free"],
|
||
methods: ["grill"],
|
||
equipment: ["grill"],
|
||
difficulty: "easy",
|
||
prepMin: 15,
|
||
cookMin: 15,
|
||
portions: 4,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer"],
|
||
holidayTags: ["grillsasong"],
|
||
variantType: "standard",
|
||
dnaProtein: "chicken_breast",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["garlic", "paprika", "smoky"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Rör ihop olivolja, pressad vitlök, paprikapulver och salt till en marinad." },
|
||
{ text: "Vänd kycklingfiléerna i marinaden och låt dem gärna stå kallt 30 minuter." },
|
||
{
|
||
text: "Grilla filéerna på medelvärme tills de är genomstekta, cirka 6–7 minuter per sida. Låt vila några minuter före servering.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "pastasallad-i-matlada",
|
||
titleSv: "Pastasallad i matlådan",
|
||
descriptionSv:
|
||
"Enkel, matig pastasallad med fetaost och paprika – perfekt att förbereda för skolstartens matlådor och luncher.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["lunch"],
|
||
tags: ["vegetarian", "meal_prep", "budget", "batch_cooking"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 10,
|
||
portions: 4,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["autumn"],
|
||
holidayTags: ["skolstart"],
|
||
variantType: "standard",
|
||
dnaCarb: "pasta_dry",
|
||
dnaVegetables: ["bell_pepper", "tomato"],
|
||
dnaFlavor: ["savory", "salty", "fresh"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "pasta_dry", nameSv: "Pasta", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "tomato", nameSv: "Tomat", qty: 200, unit: "GRAM", optional: false },
|
||
{ ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Koka pastan enligt anvisning på paketet, spola kall och låt rinna av." },
|
||
{ text: "Tärna paprika och tomat och smula fetaosten." },
|
||
{
|
||
text: "Blanda pasta, grönsaker och fetaost med olivolja. Salta efter smak och fördela i matlådor.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "tillbehor-till-surstromming",
|
||
titleSv: "Tillbehör till surströmming",
|
||
descriptionSv:
|
||
"Klassiska tillbehör till surströmmingsskivan: nykokt mandelpotatis, hackad rödlök, gräddig färskost och västerbottensost.",
|
||
cuisine: "swedish",
|
||
mealTypes: ["buffet", "dinner"],
|
||
tags: ["gluten_free"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "beginner",
|
||
prepMin: 15,
|
||
cookMin: 20,
|
||
portions: 6,
|
||
spiceLevel: 0,
|
||
mealPrepFriendly: false,
|
||
freezerFriendly: false,
|
||
peakSeasons: ["summer", "autumn"],
|
||
holidayTags: ["surstromming"],
|
||
variantType: "standard",
|
||
dnaCarb: "new_potato",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["savory", "sharp", "creamy"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "new_potato", nameSv: "Mandelpotatis", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "red_onion", nameSv: "Rödlök", qty: 100, unit: "GRAM", optional: false },
|
||
{
|
||
ing: "creme_fraiche",
|
||
nameSv: "Gräddfil eller crème fraiche",
|
||
qty: 2,
|
||
unit: "DECILITER",
|
||
optional: false,
|
||
},
|
||
{
|
||
ing: "vasterbotten_cheese",
|
||
nameSv: "Västerbottensost",
|
||
qty: 150,
|
||
unit: "GRAM",
|
||
optional: false,
|
||
},
|
||
],
|
||
steps: [
|
||
{
|
||
text: "Koka mandelpotatisen mjuk i lättsaltat vatten, cirka 18 minuter, och låt den svalna något.",
|
||
},
|
||
{ text: "Hacka rödlöken fint och riv västerbottensosten." },
|
||
{
|
||
text: "Ställ fram potatis, rödlök, gräddfil och riven ost i skålar så var och en kan bygga sin egen klämma.",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
slug: "kryddig-kyckling-med-ris",
|
||
titleSv: "Kryddig kyckling med ris",
|
||
descriptionSv:
|
||
"Mör kyckling långsamt fräst med lök, vitlök och varma kryddor, serverad på fluffigt ris \u2013 en festmåltid som passar fint till Eid och andra högtidsmiddagar.",
|
||
cuisine: "middle_eastern",
|
||
mealTypes: ["dinner", "buffet"],
|
||
tags: ["high_protein", "gluten_free"],
|
||
methods: ["stovetop"],
|
||
equipment: ["stove"],
|
||
difficulty: "easy",
|
||
prepMin: 15,
|
||
cookMin: 35,
|
||
portions: 4,
|
||
spiceLevel: 1,
|
||
mealPrepFriendly: true,
|
||
freezerFriendly: true,
|
||
peakSeasons: [],
|
||
holidayTags: ["eid"],
|
||
variantType: "standard",
|
||
dnaProtein: "chicken_thigh",
|
||
dnaCarb: "rice_white",
|
||
dnaVegetables: [],
|
||
dnaFlavor: ["warm_spice", "garlic", "savory"],
|
||
verificationStatus: "editorial",
|
||
ingredients: [
|
||
{ ing: "chicken_thigh", nameSv: "Kycklinglårfilé", qty: 600, unit: "GRAM", optional: false },
|
||
{ ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false },
|
||
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
|
||
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
|
||
{ ing: "garam_masala", nameSv: "Garam masala", qty: 6, unit: "GRAM", optional: false },
|
||
{ ing: "turmeric", nameSv: "Gurkmeja", qty: 3, unit: "GRAM", optional: false },
|
||
{ ing: "olive_oil", nameSv: "Olja", qty: 2, unit: "TABLESPOON", optional: false },
|
||
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
|
||
],
|
||
steps: [
|
||
{ text: "Koka riset enligt anvisningen på paketet och håll det varmt." },
|
||
{ text: "Skär kycklingen i bitar. Hetta upp oljan och fräs hackad lök och vitlök mjuk." },
|
||
{ text: "Lägg i kycklingen och krydda med garam masala, gurkmeja och salt. Bryn runt om." },
|
||
{
|
||
text: "Häll i en skvätt vatten, lägg på lock och låt sjuda tills kycklingen är genomstekt och mör, cirka 20 minuter. Servera på riset.",
|
||
},
|
||
],
|
||
},
|
||
];
|