summaryrefslogtreecommitdiffstats
path: root/app/seed_data.py
diff options
context:
space:
mode:
authorKen D'Ambrosio <ken@claude>2026-05-25 00:46:10 +0000
committerKen D'Ambrosio <ken@claude>2026-05-25 00:46:10 +0000
commit55bcec90c14db6f2956ed51cf4df1503c0767f81 (patch)
treef25bfb8c46366b5d3dc6b4f66e242c65094b4ada /app/seed_data.py
Initial commit — menu.jots.org Flask/SQLite meal planner
Full-featured weekly menu planner with: - Recipe library with ratings, comments, cuisine/nationality, added-by attribution - AI recipe assistant (Claude) with URL fetching and file upload - Weekly meal plan grid with shopping list generation - Sort by name, prep/cook time, or rating - Print and copy-link support - Deployed on LXC container (192.168.10.51) behind Apache reverse proxy Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'app/seed_data.py')
-rw-r--r--app/seed_data.py1007
1 files changed, 1007 insertions, 0 deletions
diff --git a/app/seed_data.py b/app/seed_data.py
new file mode 100644
index 0000000..dbf43b7
--- /dev/null
+++ b/app/seed_data.py
@@ -0,0 +1,1007 @@
+RECIPES = [
+ # ── ITALIAN ──────────────────────────────────────────────────────────────
+ {
+ "name": "Chicken Piccata",
+ "cuisine": "Italian",
+ "description": "Tender chicken in a bright lemon-caper butter sauce. Quick, elegant, and endlessly satisfying.",
+ "servings": 2,
+ "calories_per_serving": 380,
+ "carbs_per_serving": 6,
+ "protein_per_serving": 42,
+ "fat_per_serving": 18,
+ "prep_time": 10,
+ "cook_time": 20,
+ "instructions": """1. Pound chicken breasts to ½-inch thickness. Season with salt and pepper; dust lightly with flour.
+2. Heat olive oil and 1 tbsp butter in a large skillet over medium-high heat.
+3. Cook chicken 4–5 min per side until golden. Remove and rest on a plate.
+4. Add garlic to pan, cook 30 seconds. Add white wine and reduce by half, scraping up browned bits.
+5. Add chicken broth and lemon juice. Simmer 2 minutes.
+6. Add capers and remaining butter; swirl to emulsify into a glossy sauce.
+7. Return chicken, coat with sauce, garnish with parsley and lemon slices.""",
+ "ingredients": [
+ {"name": "Chicken breast", "quantity": 2, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Capers", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Lemon", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Butter", "quantity": 3, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Olive oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Dry white wine", "quantity": 0.25, "unit": "cup", "category": "Pantry"},
+ {"name": "Chicken broth", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Garlic cloves", "quantity": 2, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh parsley", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "All-purpose flour", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Osso Buco",
+ "cuisine": "Italian",
+ "description": "Braised veal shanks with a rich, wine-scented sauce and bright gremolata. A Milanese masterpiece.",
+ "servings": 2,
+ "calories_per_serving": 520,
+ "carbs_per_serving": 14,
+ "protein_per_serving": 52,
+ "fat_per_serving": 22,
+ "prep_time": 20,
+ "cook_time": 120,
+ "instructions": """1. Pat veal shanks dry; season generously with salt and pepper. Dust lightly with flour.
+2. Heat oil in a Dutch oven over medium-high. Sear shanks 4 min per side until deep brown. Set aside.
+3. Reduce heat to medium. Sauté onion, carrot, and celery until softened, 8 min. Add garlic, cook 1 min.
+4. Add white wine; deglaze and reduce by half. Add broth and crushed tomatoes.
+5. Return shanks, nestling into the sauce. Bring to a simmer.
+6. Cover and braise at 325°F (or low stovetop) for 1.5–2 hours until meat is falling off the bone.
+7. Make gremolata: combine lemon zest, minced garlic, and chopped parsley.
+8. Serve shanks with sauce spooned over, topped with gremolata.""",
+ "ingredients": [
+ {"name": "Veal shanks", "quantity": 2, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Carrot", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Celery stalks", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Dry white wine", "quantity": 1, "unit": "cup", "category": "Pantry"},
+ {"name": "Beef broth", "quantity": 1, "unit": "cup", "category": "Pantry"},
+ {"name": "Crushed tomatoes", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Lemon", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Fresh parsley", "quantity": 0.25, "unit": "cup", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "All-purpose flour", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Branzino al Forno",
+ "cuisine": "Italian",
+ "description": "Whole sea bass roasted with lemon, garlic, and herbs. Supremely simple, exceptionally flavorful.",
+ "servings": 2,
+ "calories_per_serving": 340,
+ "carbs_per_serving": 4,
+ "protein_per_serving": 38,
+ "fat_per_serving": 18,
+ "prep_time": 10,
+ "cook_time": 25,
+ "instructions": """1. Preheat oven to 425°F. Score the fish skin 3 times diagonally on each side.
+2. Season fish inside and out with salt and pepper. Stuff cavity with lemon slices, garlic, rosemary, and thyme.
+3. Place on a parchment-lined baking sheet. Drizzle generously with olive oil.
+4. Roast 20–25 minutes until skin is crisp and flesh flakes easily.
+5. Drizzle with remaining lemon juice and fresh herbs before serving.""",
+ "ingredients": [
+ {"name": "Whole branzino (sea bass)", "quantity": 2, "unit": "whole", "category": "Seafood"},
+ {"name": "Lemon", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh rosemary", "quantity": 3, "unit": "sprigs", "category": "Produce"},
+ {"name": "Fresh thyme", "quantity": 3, "unit": "sprigs", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Cherry tomatoes", "quantity": 1, "unit": "cup", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Pork Involtini",
+ "cuisine": "Italian",
+ "description": "Thin pork cutlets wrapped around prosciutto and provolone, pan-roasted in white wine and sage.",
+ "servings": 2,
+ "calories_per_serving": 420,
+ "carbs_per_serving": 4,
+ "protein_per_serving": 44,
+ "fat_per_serving": 24,
+ "prep_time": 15,
+ "cook_time": 20,
+ "instructions": """1. Pound pork cutlets to ¼-inch thickness. Season with salt and pepper.
+2. Lay a slice of prosciutto on each cutlet. Place a piece of provolone and a sage leaf at one end.
+3. Roll tightly and secure with a toothpick.
+4. Heat olive oil in a skillet over medium-high. Brown involtini on all sides, about 6 min total.
+5. Add garlic and cook 30 seconds. Add white wine and reduce by half.
+6. Add butter, baste involtini with the pan sauce. Cover and cook 5 more minutes.
+7. Remove toothpicks. Serve with pan sauce drizzled over.""",
+ "ingredients": [
+ {"name": "Pork cutlets (thin)", "quantity": 4, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Prosciutto", "quantity": 4, "unit": "slices", "category": "Meat & Poultry"},
+ {"name": "Provolone cheese", "quantity": 2, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Fresh sage", "quantity": 8, "unit": "leaves", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 2, "unit": "cloves", "category": "Produce"},
+ {"name": "Dry white wine", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Butter", "quantity": 2, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Olive oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Beef Bracciole",
+ "cuisine": "Italian",
+ "description": "Rolled flank steak stuffed with pecorino, pine nuts, and herbs, slow-braised in red wine tomato sauce.",
+ "servings": 2,
+ "calories_per_serving": 480,
+ "carbs_per_serving": 10,
+ "protein_per_serving": 46,
+ "fat_per_serving": 26,
+ "prep_time": 20,
+ "cook_time": 90,
+ "instructions": """1. Lay flank steak flat, pound to ¼ inch. Season inside with salt and pepper.
+2. Spread pecorino, pine nuts, garlic, and parsley over the surface.
+3. Roll tightly and tie with butcher's twine at 1-inch intervals.
+4. Heat olive oil in a Dutch oven. Sear roll on all sides until browned, 8 min.
+5. Add red wine and reduce by half. Add marinara sauce and 2 tbsp fresh basil.
+6. Cover and braise at 300°F for 1.5 hours until very tender.
+7. Remove twine, slice into 1-inch rounds. Serve over sauce.""",
+ "ingredients": [
+ {"name": "Flank steak", "quantity": 1, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Pecorino romano", "quantity": 2, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Pine nuts", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh parsley", "quantity": 0.25, "unit": "cup", "category": "Produce"},
+ {"name": "Marinara sauce", "quantity": 2, "unit": "cups", "category": "Pantry"},
+ {"name": "Red wine", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Fresh basil", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Zucchini Cacio e Pepe",
+ "cuisine": "Italian",
+ "description": "Spiralized zucchini in a silky pecorino and black pepper sauce — all the soul of the Roman classic, none of the pasta.",
+ "servings": 2,
+ "calories_per_serving": 310,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 16,
+ "fat_per_serving": 22,
+ "prep_time": 10,
+ "cook_time": 10,
+ "instructions": """1. Spiralize or julienne zucchini. Salt lightly and let sit 10 min; pat dry to remove moisture.
+2. Toast black peppercorns in a dry skillet, then crush coarsely.
+3. Melt butter in the skillet over medium. Add pepper and toast 30 seconds.
+4. Add zucchini and toss to coat; cook 2–3 min until just tender.
+5. Off heat, add half the pecorino and all the parmesan; toss vigorously while adding 2–3 tbsp hot water until creamy.
+6. Plate and top with remaining pecorino and more fresh pepper.""",
+ "ingredients": [
+ {"name": "Zucchini", "quantity": 4, "unit": "whole", "category": "Produce"},
+ {"name": "Pecorino romano", "quantity": 3, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Parmesan", "quantity": 2, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Black peppercorns", "quantity": 1, "unit": "tbsp", "category": "Spices & Herbs"},
+ {"name": "Butter", "quantity": 2, "unit": "tbsp", "category": "Dairy & Eggs"},
+ ]
+ },
+
+ # ── GREEK ────────────────────────────────────────────────────────────────
+ {
+ "name": "Lamb Chops with Tzatziki",
+ "cuisine": "Greek",
+ "description": "Herb-marinated lamb loin chops grilled to perfection with cooling homemade tzatziki.",
+ "servings": 2,
+ "calories_per_serving": 480,
+ "carbs_per_serving": 7,
+ "protein_per_serving": 48,
+ "fat_per_serving": 28,
+ "prep_time": 15,
+ "cook_time": 15,
+ "instructions": """1. Make tzatziki: grate cucumber, squeeze out liquid. Mix with yogurt, garlic, dill, lemon juice, salt. Chill.
+2. Combine olive oil, oregano, rosemary, lemon zest, garlic. Marinate chops at least 30 min.
+3. Grill or sear chops in a cast iron pan over high heat, 3–4 min per side for medium-rare.
+4. Rest 5 minutes before serving with tzatziki and lemon wedges.""",
+ "ingredients": [
+ {"name": "Lamb loin chops", "quantity": 4, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Greek yogurt", "quantity": 1, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "English cucumber", "quantity": 0.5, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh dill", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "Lemon", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Dried oregano", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Fresh rosemary", "quantity": 2, "unit": "sprigs", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Chicken Souvlaki",
+ "cuisine": "Greek",
+ "description": "Lemon-herb marinated chicken thighs skewered and grilled, served over a Greek salad with creamy tzatziki.",
+ "servings": 2,
+ "calories_per_serving": 420,
+ "carbs_per_serving": 8,
+ "protein_per_serving": 46,
+ "fat_per_serving": 22,
+ "prep_time": 20,
+ "cook_time": 15,
+ "instructions": """1. Cut chicken into 1.5-inch cubes. Combine with olive oil, lemon juice, garlic, oregano, paprika, salt, pepper.
+2. Marinate at least 1 hour (overnight is better).
+3. Thread onto skewers. Grill 12–14 min, turning, until cooked through and slightly charred.
+4. Make quick tzatziki: Greek yogurt, grated cucumber, garlic, dill, lemon juice.
+5. Serve over mixed greens, cucumber, tomato, olives, and red onion. Top with tzatziki.""",
+ "ingredients": [
+ {"name": "Chicken thighs, boneless", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Lemon", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Dried oregano", "quantity": 2, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Smoked paprika", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Greek yogurt", "quantity": 0.75, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "English cucumber", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Fresh dill", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "Mixed greens", "quantity": 4, "unit": "cups", "category": "Produce"},
+ {"name": "Cherry tomatoes", "quantity": 1, "unit": "cup", "category": "Produce"},
+ {"name": "Kalamata olives", "quantity": 0.25, "unit": "cup", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Shrimp Saganaki",
+ "cuisine": "Greek",
+ "description": "Plump shrimp baked in a spiced tomato sauce with crumbled feta — a taverna classic.",
+ "servings": 2,
+ "calories_per_serving": 360,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 32,
+ "fat_per_serving": 18,
+ "prep_time": 10,
+ "cook_time": 20,
+ "instructions": """1. Heat olive oil in an oven-safe skillet. Sauté onion until soft, 5 min. Add garlic and red pepper flakes.
+2. Add white wine and cook 1 min. Add diced tomatoes, oregano, salt, and pepper. Simmer 8 min.
+3. Nestle shrimp into the sauce. Crumble feta over the top.
+4. Transfer to a 400°F oven and bake 10–12 min until shrimp are pink and feta is golden.
+5. Finish with fresh parsley and a squeeze of lemon.""",
+ "ingredients": [
+ {"name": "Large shrimp, peeled", "quantity": 1, "unit": "lb", "category": "Seafood"},
+ {"name": "Feta cheese", "quantity": 4, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Diced tomatoes (canned)", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Dry white wine", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Dried oregano", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Crushed red pepper flakes", "quantity": 0.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Fresh parsley", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "Lemon", "quantity": 1, "unit": "whole", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Greek Lemon-Herb Baked Chicken",
+ "cuisine": "Greek",
+ "description": "Bone-in chicken thighs roasted in a bath of lemon, garlic, and olive oil with Kalamata olives.",
+ "servings": 2,
+ "calories_per_serving": 400,
+ "carbs_per_serving": 6,
+ "protein_per_serving": 42,
+ "fat_per_serving": 22,
+ "prep_time": 10,
+ "cook_time": 45,
+ "instructions": """1. Preheat oven to 400°F. Whisk together olive oil, lemon juice, garlic, oregano, salt, and pepper.
+2. Place chicken thighs in a baking dish. Pour lemon mixture over and toss to coat.
+3. Add chicken broth to the dish. Scatter olives and lemon zest over top.
+4. Roast 40–45 min, basting once, until skin is golden and juices run clear (165°F internal).
+5. Rest 5 min. Serve with pan juices spooned over.""",
+ "ingredients": [
+ {"name": "Chicken thighs, bone-in", "quantity": 4, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Lemon", "quantity": 3, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 6, "unit": "cloves", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Dried oregano", "quantity": 2, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Chicken broth", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Kalamata olives", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Spanakopita-Stuffed Chicken",
+ "cuisine": "Greek",
+ "description": "Chicken breasts filled with spinach, feta, and fresh dill — all the flavors of spanakopita without the phyllo.",
+ "servings": 2,
+ "calories_per_serving": 440,
+ "carbs_per_serving": 6,
+ "protein_per_serving": 50,
+ "fat_per_serving": 22,
+ "prep_time": 15,
+ "cook_time": 25,
+ "instructions": """1. Preheat oven to 375°F. Squeeze spinach very dry. Mix with feta, garlic, dill, salt, and pepper.
+2. Cut a deep horizontal pocket in each chicken breast without cutting all the way through.
+3. Stuff each breast with half the spinach mixture. Secure with toothpicks.
+4. Season outside with salt, pepper, and smoked paprika. Sear in ovenproof skillet 3 min per side.
+5. Transfer to oven and bake 18–20 min until internal temp reaches 165°F.
+6. Remove toothpicks, rest 5 min, slice and serve.""",
+ "ingredients": [
+ {"name": "Chicken breasts, large", "quantity": 2, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Frozen spinach, thawed", "quantity": 5, "unit": "oz", "category": "Produce"},
+ {"name": "Feta cheese", "quantity": 4, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Garlic cloves", "quantity": 2, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh dill", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "Smoked paprika", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Olive oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+
+ # ── INDIAN ───────────────────────────────────────────────────────────────
+ {
+ "name": "Chicken Tikka Masala",
+ "cuisine": "Indian",
+ "description": "Charred yogurt-marinated chicken simmered in a rich, spiced tomato-cream sauce. Deeply aromatic and satisfying.",
+ "servings": 2,
+ "calories_per_serving": 480,
+ "carbs_per_serving": 14,
+ "protein_per_serving": 42,
+ "fat_per_serving": 26,
+ "prep_time": 20,
+ "cook_time": 35,
+ "instructions": """1. Combine yogurt, garam masala, cumin, turmeric, coriander, chili, lemon juice, and garlic. Add chicken and marinate 1–8 hours.
+2. Broil or pan-sear chicken until charred, about 8 min per side. Cut into bite-sized pieces.
+3. Heat ghee in a large pan. Sauté onion until deeply golden, 12 min. Add garlic, ginger, and tomato paste; cook 2 min.
+4. Add crushed tomatoes and simmer 10 min. Blend smooth if desired.
+5. Stir in heavy cream and chicken. Simmer 8 min until sauce thickens.
+6. Finish with kasuri methi (dried fenugreek) and fresh cilantro.""",
+ "ingredients": [
+ {"name": "Chicken thighs, boneless", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Greek yogurt", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Garam masala", "quantity": 2, "unit": "tbsp", "category": "Spices & Herbs"},
+ {"name": "Ground cumin", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground turmeric", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground coriander", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Kashmiri chili powder", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Crushed tomatoes", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Heavy cream", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 5, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 1, "unit": "inch", "category": "Produce"},
+ {"name": "Tomato paste", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Ghee or butter", "quantity": 3, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Dried fenugreek leaves (kasuri methi)", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Fresh cilantro", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Saag Paneer",
+ "cuisine": "Indian",
+ "description": "Creamy spiced spinach with golden-fried paneer cubes. A vegetarian classic rich with ghee and warm spices.",
+ "servings": 2,
+ "calories_per_serving": 420,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 22,
+ "fat_per_serving": 32,
+ "prep_time": 10,
+ "cook_time": 25,
+ "instructions": """1. Fry paneer cubes in ghee over medium-high until golden on all sides. Set aside.
+2. In same pan, add cumin seeds. When they pop, add onion and cook until golden, 8 min.
+3. Add garlic and ginger; cook 1 min. Add tomato, turmeric, coriander, chili. Cook 5 min.
+4. Add spinach in batches, wilting each addition. Blend to a rough purée.
+5. Return to heat. Stir in cream and paneer; simmer 5 min.
+6. Finish with garam masala and fresh ginger. Serve with extra cream drizzled over.""",
+ "ingredients": [
+ {"name": "Paneer", "quantity": 8, "unit": "oz", "category": "Dairy & Eggs"},
+ {"name": "Fresh spinach", "quantity": 10, "unit": "oz", "category": "Produce"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 1, "unit": "inch", "category": "Produce"},
+ {"name": "Cumin seeds", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground turmeric", "quantity": 0.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground coriander", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Garam masala", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Chili powder", "quantity": 0.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Tomato", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Heavy cream", "quantity": 0.25, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Ghee", "quantity": 3, "unit": "tbsp", "category": "Dairy & Eggs"},
+ ]
+ },
+ {
+ "name": "Tandoori Chicken",
+ "cuisine": "Indian",
+ "description": "Smoky, charred chicken marinated in spiced yogurt — best cooked at high heat to mimic the tandoor's intensity.",
+ "servings": 2,
+ "calories_per_serving": 380,
+ "carbs_per_serving": 8,
+ "protein_per_serving": 44,
+ "fat_per_serving": 18,
+ "prep_time": 15,
+ "cook_time": 30,
+ "instructions": """1. Score chicken deeply with a knife. Mix yogurt with tandoori masala, turmeric, cumin, chili powder, garlic, ginger, lemon juice, and salt.
+2. Coat chicken completely and marinate at least 2 hours, ideally overnight.
+3. Preheat oven to 450°F or preheat broiler. Place chicken on a rack over a foil-lined pan.
+4. Cook 25–30 min, turning once, until edges are charred and chicken is cooked through.
+5. Serve with lemon wedges, sliced onion, and fresh mint.""",
+ "ingredients": [
+ {"name": "Chicken legs and thighs", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Greek yogurt", "quantity": 1, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Tandoori masala", "quantity": 2, "unit": "tbsp", "category": "Spices & Herbs"},
+ {"name": "Ground turmeric", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground cumin", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Chili powder", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 1, "unit": "inch", "category": "Produce"},
+ {"name": "Lemon", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Red onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Fresh mint", "quantity": 0.25, "unit": "cup", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Lamb Rogan Josh",
+ "cuisine": "Indian",
+ "description": "Slow-cooked Kashmiri lamb stew fragrant with whole spices, layered heat, and a deep burgundy color.",
+ "servings": 2,
+ "calories_per_serving": 520,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 46,
+ "fat_per_serving": 28,
+ "prep_time": 15,
+ "cook_time": 90,
+ "instructions": """1. Heat ghee in a heavy pot. Fry whole spices 1 min until fragrant.
+2. Add onion and cook until deeply caramelized, 15 min. Add garlic and ginger; cook 2 min.
+3. Add ground spices and chili; stir 1 min. Add lamb and sear until browned on all sides.
+4. Add yogurt one spoonful at a time, stirring well. Add tomatoes.
+5. Cover and cook on low 75–90 min, stirring occasionally, until lamb is very tender.
+6. Adjust seasoning. Garnish with cilantro and fried onions.""",
+ "ingredients": [
+ {"name": "Lamb shoulder, cubed", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 1.5, "unit": "inch", "category": "Produce"},
+ {"name": "Whole cardamom pods", "quantity": 4, "unit": "whole", "category": "Spices & Herbs"},
+ {"name": "Whole cloves", "quantity": 3, "unit": "whole", "category": "Spices & Herbs"},
+ {"name": "Cinnamon stick", "quantity": 1, "unit": "whole", "category": "Spices & Herbs"},
+ {"name": "Kashmiri chili powder", "quantity": 2, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground cumin", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground coriander", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Crushed tomatoes", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Greek yogurt", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Ghee", "quantity": 3, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Fresh cilantro", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Butter Chicken",
+ "cuisine": "Indian",
+ "description": "Mildly spiced chicken in a velvety tomato-butter sauce with cream. The dish that wins over everyone.",
+ "servings": 2,
+ "calories_per_serving": 460,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 40,
+ "fat_per_serving": 28,
+ "prep_time": 15,
+ "cook_time": 35,
+ "instructions": """1. Marinate chicken in yogurt, lemon, garam masala, and chili for 1–8 hours.
+2. Broil or pan-sear chicken until lightly charred. Cut into pieces.
+3. Heat butter and oil. Sauté onion until golden, 10 min. Add garlic, ginger, and spices; cook 2 min.
+4. Add tomato purée and simmer 15 min. Blend smooth.
+5. Stir in cream, honey (optional), and kasuri methi. Add chicken and simmer 8 min.
+6. Finish with a knob of butter and fresh cilantro.""",
+ "ingredients": [
+ {"name": "Chicken thighs, boneless", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Greek yogurt", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Crushed tomatoes", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Heavy cream", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 5, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 1, "unit": "inch", "category": "Produce"},
+ {"name": "Kashmiri chili powder", "quantity": 1.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Garam masala", "quantity": 1.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground cumin", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Dried fenugreek leaves (kasuri methi)", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Butter", "quantity": 3, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Olive oil", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Fresh cilantro", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Goan Fish Curry",
+ "cuisine": "Indian",
+ "description": "Tangy coconut milk curry with firm white fish — Goa's sun-drenched coast in a bowl.",
+ "servings": 2,
+ "calories_per_serving": 400,
+ "carbs_per_serving": 10,
+ "protein_per_serving": 36,
+ "fat_per_serving": 24,
+ "prep_time": 10,
+ "cook_time": 20,
+ "instructions": """1. Heat coconut oil in a pan. Sauté onion until golden, 8 min. Add garlic and ginger.
+2. Add turmeric, cumin, coriander, and chili; cook 1 min. Add tamarind paste and stir well.
+3. Pour in coconut milk; simmer 5 min. Season with salt and a pinch of sugar.
+4. Add fish in a single layer. Simmer gently 8–10 min until fish is just cooked through.
+5. Garnish with fresh cilantro and serve with cauliflower rice.""",
+ "ingredients": [
+ {"name": "Cod or halibut fillets", "quantity": 1.5, "unit": "lb", "category": "Seafood"},
+ {"name": "Coconut milk (full fat)", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 1, "unit": "inch", "category": "Produce"},
+ {"name": "Tamarind paste", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Ground turmeric", "quantity": 0.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground cumin", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground coriander", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Kashmiri chili powder", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Coconut oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Fresh cilantro", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ ]
+ },
+
+ # ── ASIAN ────────────────────────────────────────────────────────────────
+ {
+ "name": "Beef and Broccoli",
+ "cuisine": "Asian",
+ "description": "Silky flank steak and crisp broccoli in a savory-umami stir-fry sauce. Better than takeout.",
+ "servings": 2,
+ "calories_per_serving": 380,
+ "carbs_per_serving": 14,
+ "protein_per_serving": 38,
+ "fat_per_serving": 18,
+ "prep_time": 15,
+ "cook_time": 15,
+ "instructions": """1. Slice beef thinly against the grain. Toss with 1 tbsp soy sauce and 1 tsp sesame oil. Let sit 10 min.
+2. Whisk remaining soy sauce, oyster sauce, beef broth, and arrowroot for the sauce.
+3. Heat wok or large skillet to very high. Sear beef in batches until just browned. Remove.
+4. In same wok, stir-fry broccoli 3 min. Add garlic and ginger; cook 30 seconds.
+5. Pour sauce over broccoli; toss until thickened, 1–2 min. Return beef and toss to coat.
+6. Finish with sesame oil and serve immediately.""",
+ "ingredients": [
+ {"name": "Flank steak", "quantity": 1, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Broccoli florets", "quantity": 3, "unit": "cups", "category": "Produce"},
+ {"name": "Soy sauce (or tamari)", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Oyster sauce", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Sesame oil", "quantity": 2, "unit": "tsp", "category": "Pantry"},
+ {"name": "Beef broth", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Arrowroot powder", "quantity": 1.5, "unit": "tsp", "category": "Pantry"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 0.5, "unit": "inch", "category": "Produce"},
+ {"name": "Vegetable oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Thai Basil Chicken (Pad Krapao)",
+ "cuisine": "Asian",
+ "description": "Aromatic minced chicken with Thai basil, garlic, and chilies. Fast, fiery, and addictive.",
+ "servings": 2,
+ "calories_per_serving": 360,
+ "carbs_per_serving": 8,
+ "protein_per_serving": 40,
+ "fat_per_serving": 18,
+ "prep_time": 10,
+ "cook_time": 12,
+ "instructions": """1. Heat oil in a wok over high heat. Add garlic and chilies; stir 30 seconds until fragrant.
+2. Add ground chicken, breaking it up. Stir-fry 5 min until cooked and slightly browned.
+3. Add fish sauce, oyster sauce, and soy sauce; toss to coat.
+4. Remove from heat. Fold in Thai basil leaves — they'll wilt in the residual heat.
+5. Optional: top each bowl with a crispy fried egg.
+6. Serve over cauliflower rice.""",
+ "ingredients": [
+ {"name": "Ground chicken", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Fresh Thai basil", "quantity": 1.5, "unit": "cups", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 5, "unit": "cloves", "category": "Produce"},
+ {"name": "Thai red chilies", "quantity": 3, "unit": "whole", "category": "Produce"},
+ {"name": "Fish sauce", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Oyster sauce", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Soy sauce", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Vegetable oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Eggs", "quantity": 2, "unit": "whole", "category": "Dairy & Eggs"},
+ ]
+ },
+ {
+ "name": "Miso-Glazed Salmon",
+ "cuisine": "Asian",
+ "description": "Broiled salmon with a sweet-savory miso glaze that caramelizes into a lacquered crust. Effortlessly elegant.",
+ "servings": 2,
+ "calories_per_serving": 440,
+ "carbs_per_serving": 10,
+ "protein_per_serving": 44,
+ "fat_per_serving": 22,
+ "prep_time": 5,
+ "cook_time": 12,
+ "instructions": """1. Whisk together miso paste, sake, mirin, soy sauce, and sesame oil until smooth.
+2. Pat salmon dry. Pour marinade over and marinate 20 min (up to overnight in the fridge).
+3. Preheat broiler. Place salmon skin-side down on a foil-lined pan.
+4. Broil 10–12 min until the glaze is deeply caramelized and fish flakes easily.
+5. Garnish with scallions and sesame seeds. Serve immediately.""",
+ "ingredients": [
+ {"name": "Salmon fillets", "quantity": 2, "unit": "whole", "category": "Seafood"},
+ {"name": "White miso paste", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Sake or dry sherry", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Mirin", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Soy sauce", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Sesame oil", "quantity": 1, "unit": "tsp", "category": "Pantry"},
+ {"name": "Scallions", "quantity": 3, "unit": "whole", "category": "Produce"},
+ {"name": "Sesame seeds", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Mapo Tofu",
+ "cuisine": "Asian",
+ "description": "Silken tofu and ground pork in a fiery, numbing Sichuan sauce. A landmark of bold flavors.",
+ "servings": 2,
+ "calories_per_serving": 380,
+ "carbs_per_serving": 8,
+ "protein_per_serving": 28,
+ "fat_per_serving": 24,
+ "prep_time": 10,
+ "cook_time": 15,
+ "instructions": """1. Heat oil in a wok. Brown pork until crispy and fragrant. Push to one side.
+2. Add doubanjiang; fry in oil 1 min until deep red and fragrant. Add garlic and ginger.
+3. Pour in chicken broth; bring to a simmer. Add tofu in large cubes, stir gently.
+4. Stir in soy sauce. Thicken with arrowroot slurry.
+5. Finish with sesame oil and scatter scallions. Dust with Sichuan peppercorns before serving.""",
+ "ingredients": [
+ {"name": "Silken tofu", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Ground pork", "quantity": 0.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Doubanjiang (chili bean paste)", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 0.5, "unit": "inch", "category": "Produce"},
+ {"name": "Chicken broth", "quantity": 1, "unit": "cup", "category": "Pantry"},
+ {"name": "Soy sauce", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Sichuan peppercorns", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Sesame oil", "quantity": 1, "unit": "tsp", "category": "Pantry"},
+ {"name": "Scallions", "quantity": 3, "unit": "whole", "category": "Produce"},
+ {"name": "Arrowroot powder", "quantity": 1, "unit": "tsp", "category": "Pantry"},
+ {"name": "Vegetable oil", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Korean Bulgogi",
+ "cuisine": "Asian",
+ "description": "Thinly sliced ribeye marinated in soy, sesame, and Asian pear — caramelized and intensely savory.",
+ "servings": 2,
+ "calories_per_serving": 440,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 42,
+ "fat_per_serving": 24,
+ "prep_time": 20,
+ "cook_time": 10,
+ "instructions": """1. Grate the Asian pear (or apple). Mix with soy sauce, sesame oil, gochujang, garlic, ginger, scallions, sugar (or substitute), and sesame seeds.
+2. Add thinly sliced beef; marinate at least 30 min (or overnight).
+3. Heat a grill pan or skillet to high. Cook beef in a single layer, 2–3 min per side until caramelized.
+4. Serve over lettuce cups or cauliflower rice, garnished with sesame seeds and scallions.""",
+ "ingredients": [
+ {"name": "Ribeye steak, thinly sliced", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Soy sauce", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Sesame oil", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Gochujang", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Asian pear or apple", "quantity": 0.5, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh ginger", "quantity": 0.5, "unit": "inch", "category": "Produce"},
+ {"name": "Sesame seeds", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Scallions", "quantity": 4, "unit": "whole", "category": "Produce"},
+ {"name": "Butter lettuce (for wraps)", "quantity": 1, "unit": "head", "category": "Produce"},
+ ]
+ },
+ {
+ "name": "Vietnamese Caramelized Pork (Thit Kho)",
+ "cuisine": "Asian",
+ "description": "Pork belly slow-braised in coconut water until sticky and deeply caramelized. Comfort food from Saigon.",
+ "servings": 2,
+ "calories_per_serving": 500,
+ "carbs_per_serving": 6,
+ "protein_per_serving": 38,
+ "fat_per_serving": 34,
+ "prep_time": 10,
+ "cook_time": 75,
+ "instructions": """1. Cut pork belly into 1.5-inch pieces. Sear in a heavy pot until golden on all sides.
+2. Combine fish sauce, soy sauce, garlic, shallot, and black pepper. Add to pork.
+3. Pour coconut water or plain water to half-cover. Add hard-boiled eggs.
+4. Bring to a boil, then reduce heat. Simmer uncovered 60–75 min, turning occasionally, until sauce is thick and sticky.
+5. The liquid should reduce to a rich glaze. Adjust seasoning.
+6. Serve garnished with scallions.""",
+ "ingredients": [
+ {"name": "Pork belly", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Eggs, hard-boiled", "quantity": 2, "unit": "whole", "category": "Dairy & Eggs"},
+ {"name": "Fish sauce", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Soy sauce", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Shallot", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Coconut water or water", "quantity": 1.5, "unit": "cups", "category": "Pantry"},
+ {"name": "Scallions", "quantity": 2, "unit": "whole", "category": "Produce"},
+ ]
+ },
+
+ # ── FRENCH ───────────────────────────────────────────────────────────────
+ {
+ "name": "Coq au Vin",
+ "cuisine": "French",
+ "description": "Chicken braised in Burgundy with bacon, mushrooms, and pearl onions. The definitive French comfort dish.",
+ "servings": 2,
+ "calories_per_serving": 540,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 44,
+ "fat_per_serving": 28,
+ "prep_time": 20,
+ "cook_time": 90,
+ "instructions": """1. Cook bacon in a Dutch oven until crispy. Remove; leave fat in pan.
+2. Season chicken; brown on all sides in bacon fat over medium-high, 8 min. Remove.
+3. Sauté mushrooms until golden, 5 min. Add onion and cook 5 min more.
+4. Add garlic; cook 1 min. Add tomato paste and cook 1 min.
+5. Add cognac or brandy and let it reduce 1 min. Add wine and broth.
+6. Return chicken and bacon. Add thyme and bay leaf. Simmer covered 45 min until chicken is very tender.
+7. Uncover the last 15 min to thicken the sauce. Check seasoning.""",
+ "ingredients": [
+ {"name": "Chicken thighs, bone-in", "quantity": 4, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Bacon lardons", "quantity": 4, "unit": "oz", "category": "Meat & Poultry"},
+ {"name": "Red Burgundy wine", "quantity": 2, "unit": "cups", "category": "Pantry"},
+ {"name": "Chicken broth", "quantity": 1, "unit": "cup", "category": "Pantry"},
+ {"name": "Cremini mushrooms", "quantity": 8, "unit": "oz", "category": "Produce"},
+ {"name": "Pearl onions", "quantity": 1, "unit": "cup", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Tomato paste", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Cognac or brandy", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Fresh thyme", "quantity": 4, "unit": "sprigs", "category": "Produce"},
+ {"name": "Bay leaves", "quantity": 2, "unit": "whole", "category": "Spices & Herbs"},
+ {"name": "Butter", "quantity": 2, "unit": "tbsp", "category": "Dairy & Eggs"},
+ ]
+ },
+ {
+ "name": "Duck Confit",
+ "cuisine": "French",
+ "description": "Duck legs slow-cooked in their own fat until silky and tender, then crisped in a screaming hot pan.",
+ "servings": 2,
+ "calories_per_serving": 640,
+ "carbs_per_serving": 2,
+ "protein_per_serving": 42,
+ "fat_per_serving": 50,
+ "prep_time": 15,
+ "cook_time": 180,
+ "instructions": """1. Rub duck legs with salt, garlic, thyme, rosemary, and pepper. Refrigerate uncured at least 2 hours.
+2. Place in a baking dish; cover with duck fat (or olive oil as substitute). The legs should be submerged.
+3. Cook at 250°F for 2.5–3 hours until meat is very tender and pulls easily from the bone.
+4. Remove legs. Reserve the fat for future confit or roasting potatoes.
+5. Heat a heavy skillet to high. Sear duck legs skin-side down 5–6 min until skin is shatteringly crispy.
+6. Rest briefly and serve with wilted greens or celery root purée.""",
+ "ingredients": [
+ {"name": "Duck legs", "quantity": 2, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Duck fat (or olive oil)", "quantity": 2, "unit": "cups", "category": "Pantry"},
+ {"name": "Coarse sea salt", "quantity": 2, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Fresh thyme", "quantity": 4, "unit": "sprigs", "category": "Produce"},
+ {"name": "Fresh rosemary", "quantity": 2, "unit": "sprigs", "category": "Produce"},
+ {"name": "Black pepper", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ ]
+ },
+ {
+ "name": "Steak au Poivre",
+ "cuisine": "French",
+ "description": "Pepper-crusted steak with a flambéed cognac-cream pan sauce. Bistro drama on your own stovetop.",
+ "servings": 2,
+ "calories_per_serving": 580,
+ "carbs_per_serving": 4,
+ "protein_per_serving": 46,
+ "fat_per_serving": 38,
+ "prep_time": 10,
+ "cook_time": 15,
+ "instructions": """1. Crack peppercorns coarsely with a mortar or rolling pin. Press firmly onto both sides of steaks.
+2. Season with salt. Heat 1 tbsp butter and oil in a heavy skillet over high heat.
+3. Cook steaks to desired doneness (3–4 min per side for medium-rare). Rest on a plate.
+4. Reduce heat. Add shallot; cook 1 min. Carefully add cognac and tip the pan to flambé.
+5. When flames die out, add cream and thyme. Simmer until sauce coats a spoon, 2–3 min.
+6. Season sauce. Pour over steaks and serve immediately.""",
+ "ingredients": [
+ {"name": "Ribeye or NY strip steaks", "quantity": 2, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Black peppercorns", "quantity": 2, "unit": "tbsp", "category": "Spices & Herbs"},
+ {"name": "Cognac or brandy", "quantity": 0.25, "unit": "cup", "category": "Pantry"},
+ {"name": "Heavy cream", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Shallot", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Fresh thyme", "quantity": 2, "unit": "sprigs", "category": "Produce"},
+ {"name": "Butter", "quantity": 2, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Olive oil", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Bouillabaisse",
+ "cuisine": "French",
+ "description": "Provençal saffron-scented seafood stew with fennel and tomatoes. A taste of Marseille in a bowl.",
+ "servings": 2,
+ "calories_per_serving": 380,
+ "carbs_per_serving": 14,
+ "protein_per_serving": 34,
+ "fat_per_serving": 18,
+ "prep_time": 20,
+ "cook_time": 30,
+ "instructions": """1. Heat olive oil in a wide pot. Sauté fennel and onion until softened, 8 min.
+2. Add garlic, orange zest, saffron, and thyme; cook 1 min.
+3. Add wine, tomatoes, and broth; bring to a boil. Simmer 15 min.
+4. Add firm fish first; cook 3 min. Add shrimp and mussels; cover and cook 5 min until mussels open.
+5. Discard any unopened mussels. Season and ladle into warm bowls.
+6. Serve with garlic aioli on the side (optional).""",
+ "ingredients": [
+ {"name": "Mixed firm white fish (cod, halibut)", "quantity": 0.75, "unit": "lb", "category": "Seafood"},
+ {"name": "Large shrimp, peeled", "quantity": 0.5, "unit": "lb", "category": "Seafood"},
+ {"name": "Mussels, cleaned", "quantity": 0.5, "unit": "lb", "category": "Seafood"},
+ {"name": "Fennel bulb", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Diced tomatoes (canned)", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Fish or seafood broth", "quantity": 2, "unit": "cups", "category": "Pantry"},
+ {"name": "Dry white wine", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Saffron threads", "quantity": 0.25, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Orange zest", "quantity": 1, "unit": "tsp", "category": "Produce"},
+ {"name": "Fresh thyme", "quantity": 3, "unit": "sprigs", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Poulet Basquaise",
+ "cuisine": "French",
+ "description": "Braised chicken with sweet peppers, tomatoes, and olives from the Basque country. Vivid and rustic.",
+ "servings": 2,
+ "calories_per_serving": 420,
+ "carbs_per_serving": 14,
+ "protein_per_serving": 40,
+ "fat_per_serving": 20,
+ "prep_time": 15,
+ "cook_time": 50,
+ "instructions": """1. Season chicken thighs. Brown skin-side down in olive oil over medium-high, 5 min. Flip, brown 3 min more. Remove.
+2. In same pan, sauté bell peppers and onion until softened, 8 min. Add garlic; cook 1 min.
+3. Add smoked paprika and thyme; stir 30 seconds. Add wine; deglaze.
+4. Add tomatoes and bring to a simmer. Nestle chicken skin-side up in the sauce.
+5. Cook partially covered 35–40 min until chicken is cooked through.
+6. Stir in olives and fresh basil. Adjust seasoning.""",
+ "ingredients": [
+ {"name": "Chicken thighs, bone-in", "quantity": 4, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Red bell pepper", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Green bell pepper", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Onion", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 4, "unit": "cloves", "category": "Produce"},
+ {"name": "Crushed tomatoes", "quantity": 14, "unit": "oz", "category": "Pantry"},
+ {"name": "Dry white wine", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Smoked paprika", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Fresh thyme", "quantity": 3, "unit": "sprigs", "category": "Produce"},
+ {"name": "Picholine or green olives", "quantity": 0.25, "unit": "cup", "category": "Pantry"},
+ {"name": "Fresh basil", "quantity": 0.25, "unit": "cup", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Sole Meunière",
+ "cuisine": "French",
+ "description": "Delicate sole fillets dredged in flour and finished with brown butter and lemon. Simplicity perfected.",
+ "servings": 2,
+ "calories_per_serving": 340,
+ "carbs_per_serving": 6,
+ "protein_per_serving": 36,
+ "fat_per_serving": 18,
+ "prep_time": 5,
+ "cook_time": 10,
+ "instructions": """1. Pat sole fillets dry. Season with salt and white pepper; dust lightly with flour.
+2. Melt 2 tbsp butter in a large skillet over medium-high heat until foaming.
+3. Cook sole 2–3 min per side until golden. Remove to warm plates.
+4. Wipe pan; add remaining butter and cook over medium until nut-brown (beurre noisette).
+5. Off heat, add lemon juice — it will sizzle dramatically.
+6. Pour brown butter over fish. Garnish with capers (optional) and fresh parsley.""",
+ "ingredients": [
+ {"name": "Sole or flounder fillets", "quantity": 2, "unit": "whole", "category": "Seafood"},
+ {"name": "Butter", "quantity": 4, "unit": "tbsp", "category": "Dairy & Eggs"},
+ {"name": "Lemon", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Fresh flat-leaf parsley", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ {"name": "All-purpose flour", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Capers", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ ]
+ },
+ {
+ "name": "Salade Niçoise",
+ "cuisine": "French",
+ "description": "The iconic Riviera salad — tuna, eggs, haricots verts, olives, and anchovies in a bold Dijon vinaigrette.",
+ "servings": 2,
+ "calories_per_serving": 440,
+ "carbs_per_serving": 12,
+ "protein_per_serving": 38,
+ "fat_per_serving": 26,
+ "prep_time": 20,
+ "cook_time": 15,
+ "instructions": """1. Cook eggs to a firm-but-jammy soft boil (8 min from cold start). Cool and peel.
+2. Blanch haricots verts in boiling salted water 3 min; plunge into ice water to stay bright green.
+3. Whisk together olive oil, red wine vinegar, Dijon, garlic, salt, and pepper for the vinaigrette.
+4. Arrange greens on a platter. Top with tuna (broken into chunks), halved eggs, green beans, tomatoes, olives, and anchovies.
+5. Drizzle generously with vinaigrette and serve immediately.""",
+ "ingredients": [
+ {"name": "Tuna in olive oil (canned)", "quantity": 10, "unit": "oz", "category": "Seafood"},
+ {"name": "Eggs", "quantity": 4, "unit": "whole", "category": "Dairy & Eggs"},
+ {"name": "Haricots verts (thin green beans)", "quantity": 6, "unit": "oz", "category": "Produce"},
+ {"name": "Cherry tomatoes", "quantity": 1, "unit": "cup", "category": "Produce"},
+ {"name": "Kalamata olives", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Anchovy fillets", "quantity": 4, "unit": "whole", "category": "Seafood"},
+ {"name": "Mixed salad greens", "quantity": 4, "unit": "cups", "category": "Produce"},
+ {"name": "Olive oil", "quantity": 4, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Red wine vinegar", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Dijon mustard", "quantity": 1, "unit": "tsp", "category": "Pantry"},
+ {"name": "Garlic cloves", "quantity": 1, "unit": "cloves", "category": "Produce"},
+ ]
+ },
+
+ # ── SPANISH (filed under Italian) ────────────────────────────────────────
+ {
+ "name": "Pollo al Ajillo",
+ "cuisine": "Italian",
+ "description": "Spanish garlic chicken — golden pieces braised with a forest of garlic, dry sherry, and thyme until the sauce becomes sticky and deeply savory.",
+ "servings": 2,
+ "calories_per_serving": 460,
+ "carbs_per_serving": 6,
+ "protein_per_serving": 44,
+ "fat_per_serving": 26,
+ "prep_time": 10,
+ "cook_time": 35,
+ "status": "candidate",
+ "instructions": """1. Season chicken pieces with salt and pepper.
+2. Heat olive oil in a wide skillet over medium-high. Sear chicken skin-side down until deep golden, 7 min. Flip, cook 3 min more. Remove.
+3. Add garlic to the fat; cook over medium until golden and fragrant, 3 min.
+4. Add sherry; let it bubble and reduce by half, scraping up the browned bits.
+5. Return chicken and add thyme and bay leaf. Cover and braise on low 20 min.
+6. Uncover the last 5 min to thicken the sauce. Discard bay leaf.
+7. Finish with a squeeze of lemon and fresh parsley.""",
+ "ingredients": [
+ {"name": "Chicken thighs, bone-in", "quantity": 4, "unit": "whole", "category": "Meat & Poultry"},
+ {"name": "Garlic cloves", "quantity": 12, "unit": "cloves", "category": "Produce"},
+ {"name": "Dry sherry (or white wine)", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Fresh thyme", "quantity": 4, "unit": "sprigs", "category": "Produce"},
+ {"name": "Bay leaf", "quantity": 1, "unit": "whole", "category": "Spices & Herbs"},
+ {"name": "Lemon", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Fresh parsley", "quantity": 2, "unit": "tbsp", "category": "Produce"},
+ ]
+ },
+
+ # ── LEVANTINE (filed under Greek) ─────────────────────────────────────────
+ {
+ "name": "Shish Tawook",
+ "cuisine": "Greek",
+ "description": "Lebanese marinated chicken skewers with yogurt, lemon, and warm spices — charred, juicy, and irresistible with garlic toum.",
+ "servings": 2,
+ "calories_per_serving": 390,
+ "carbs_per_serving": 8,
+ "protein_per_serving": 46,
+ "fat_per_serving": 18,
+ "prep_time": 15,
+ "cook_time": 15,
+ "status": "candidate",
+ "instructions": """1. Combine yogurt, lemon juice, olive oil, garlic, tomato paste, cumin, allspice, cinnamon, paprika, and salt to form the marinade.
+2. Cut chicken into 1.5-inch cubes; toss with marinade. Marinate at least 2 hours, overnight is ideal.
+3. Thread chicken onto skewers. Let come to room temperature 15 min before cooking.
+4. Grill or broil over high heat, turning every 2–3 min, until charred at the edges and cooked through, about 12 min total.
+5. Make quick toum (garlic sauce): blend garlic, lemon juice, salt, and whisk in olive oil until emulsified.
+6. Serve skewers over cucumber-tomato salad with toum on the side.""",
+ "ingredients": [
+ {"name": "Chicken breast, boneless", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Greek yogurt", "quantity": 0.5, "unit": "cup", "category": "Dairy & Eggs"},
+ {"name": "Lemon", "quantity": 2, "unit": "whole", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 6, "unit": "cloves", "category": "Produce"},
+ {"name": "Tomato paste", "quantity": 1, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Olive oil", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Ground cumin", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground allspice", "quantity": 0.5, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Ground cinnamon", "quantity": 0.25, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "Smoked paprika", "quantity": 1, "unit": "tsp", "category": "Spices & Herbs"},
+ {"name": "English cucumber", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Cherry tomatoes", "quantity": 1, "unit": "cup", "category": "Produce"},
+ ]
+ },
+
+ # ── JAPANESE (filed under Asian) ──────────────────────────────────────────
+ {
+ "name": "Chicken Karaage",
+ "cuisine": "Asian",
+ "description": "Japanese double-fried chicken thighs — juicy inside, shattering crisp outside, with a ginger-soy marinade and kewpie mayo.",
+ "servings": 2,
+ "calories_per_serving": 480,
+ "carbs_per_serving": 8,
+ "protein_per_serving": 42,
+ "fat_per_serving": 28,
+ "prep_time": 20,
+ "cook_time": 20,
+ "status": "candidate",
+ "instructions": """1. Cut chicken thighs into 1.5-inch pieces. Combine soy sauce, sake, ginger, and garlic; marinate chicken 30 min minimum.
+2. Remove chicken from marinade; pat dry. Toss in arrowroot powder (or potato starch) to coat lightly.
+3. Heat vegetable oil to 325°F in a heavy pot. Fry chicken in batches 4 min until just cooked. Drain on a rack.
+4. Raise oil to 375°F. Fry all pieces again 90 seconds until deeply golden and shatteringly crisp.
+5. Drain and immediately season with a pinch of salt.
+6. Serve with lemon wedges, kewpie mayo for dipping, and shredded cabbage.""",
+ "ingredients": [
+ {"name": "Chicken thighs, boneless skin-on", "quantity": 1.5, "unit": "lb", "category": "Meat & Poultry"},
+ {"name": "Soy sauce", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Sake or dry sherry", "quantity": 2, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Fresh ginger", "quantity": 1, "unit": "inch", "category": "Produce"},
+ {"name": "Garlic cloves", "quantity": 3, "unit": "cloves", "category": "Produce"},
+ {"name": "Arrowroot or potato starch", "quantity": 0.5, "unit": "cup", "category": "Pantry"},
+ {"name": "Vegetable oil (for frying)", "quantity": 3, "unit": "cups", "category": "Pantry"},
+ {"name": "Lemon", "quantity": 1, "unit": "whole", "category": "Produce"},
+ {"name": "Kewpie mayonnaise", "quantity": 3, "unit": "tbsp", "category": "Pantry"},
+ {"name": "Green cabbage, shredded", "quantity": 1, "unit": "cup", "category": "Produce"},
+ ]
+ },
+]