{
  "$schema": "https://recipes.dhanjas.com/schema/recipe.schema.json",
  "format": 3,
  "slug": "dumpling-lettuce-wraps",
  "category": "snack",
  "title": "Crunchy Dumpling Lettuce Wraps",
  "subtitle": "Korean-inspired lettuce wraps with a Jain TVP filling, homemade gochujang, and crunchy dumpling strips.",
  "badges": [
    "Jain Vegetarian",
    "Toddler-adapted"
  ],
  "labels": [
    "TVP · Fusion"
  ],
  "meta": [
    "4 servings",
    "~50 min",
    "≈14 lettuce cups"
  ],
  "protein": "~20g protein per adult serving — from TVP, plus peanuts in the chili crisp",
  "nightPrep": null,
  "ingredientGroups": [
    {
      "label": "TVP & filling",
      "items": [
        {"id": "tvp", "name": "Dry TVP (granules/chunks)", "short": "TVP", "amount": "150g"},
        {"id": "water-hot", "name": "Hot water", "short": "hot water", "amount": "2 cups"},
        {"id": "oil-filling", "name": "Neutral oil", "short": "neutral oil", "amount": "2 tbsp"},
        {"id": "celery", "name": "Celery, sliced thin diagonal", "short": "celery", "amount": "2 stalks"},
        {"id": "cabbage", "name": "Green cabbage, shredded", "short": "cabbage", "amount": "~4 cups"},
        {"id": "bell-pepper", "name": "Red bell pepper, julienned", "short": "red bell pepper", "amount": "1 medium"},
        {"id": "carrot", "name": "Carrot, julienned (toddler only)", "short": "carrot", "amount": "1 small", "portions": {"toddler": "1 small"}}
      ]
    },
    {
      "label": "Shared seasonings",
      "items": [
        {"id": "soy", "name": "Reduced-sodium soy sauce", "short": "soy sauce", "amount": "6½ tbsp", "portions": {"soak": "1½ tbsp", "sauce": "5 tbsp"}},
        {"id": "ginger", "name": "Fresh ginger", "short": "ginger", "amount": "3 tbsp + 1 tsp", "portions": {"soak": "1 tsp", "crisp": "1 tbsp", "filling": "2 tbsp"}},
        {"id": "hing", "name": "Hing", "short": "hing", "amount": "¾ tsp", "portions": {"soak": "¼ tsp", "crisp": "¼ tsp", "filling": "¼ tsp"}},
        {"id": "sugar", "name": "Sugar", "short": "sugar", "amount": "1¼ tsp", "portions": {"soak": "½ tsp", "crisp": "½ tsp", "strips": "¼ tsp"}},
        {"id": "brown-sugar", "name": "Light brown sugar or jaggery", "short": "brown sugar", "amount": "4 tbsp", "portions": {"gochujang": "2 tbsp", "sauce": "2 tbsp"}},
        {"id": "salt", "name": "Salt", "short": "salt", "amount": "1 tsp", "portions": {"gochujang": "¼ tsp", "crisp": "½ tsp", "strips": "¼ tsp"}}
      ]
    },
    {
      "label": "Jain gochujang & chili crisp",
      "items": [
        {"id": "gochugaru", "name": "Gochugaru (Korean chili flakes)", "short": "gochugaru", "amount": "5 tbsp", "portions": {"gochujang": "3 tbsp", "crisp": "2 tbsp"}},
        {"id": "miso", "name": "White miso paste", "short": "white miso", "amount": "2 tbsp"},
        {"id": "vinegar", "name": "Rice vinegar", "short": "rice vinegar", "amount": "1 tbsp"},
        {"id": "water-warm", "name": "Warm water", "short": "warm water", "amount": "3 tbsp"},
        {"id": "oil-crisp", "name": "Neutral oil (peanut or canola)", "short": "neutral oil", "amount": "⅓ cup"},
        {"id": "sesame", "name": "Sesame seeds", "short": "sesame seeds", "amount": "3 tbsp", "portions": {"crisp": "1 tbsp", "garnish": "2 tbsp"}},
        {"id": "peanuts", "name": "Roasted peanuts, crushed", "short": "crushed peanuts", "amount": "2 tbsp"}
      ]
    },
    {
      "label": "Sauce",
      "items": [
        {"id": "water-sauce", "name": "Water", "short": "water", "amount": "6 tbsp"},
        {"id": "sesame-oil", "name": "Toasted sesame oil", "short": "toasted sesame oil", "amount": "2 tbsp"},
        {"id": "cornstarch", "name": "Cornstarch", "short": "cornstarch", "amount": "1 tbsp"},
        {"id": "gochujang", "name": "Jain gochujang (from above)", "short": "Jain gochujang", "amount": "2 tbsp"},
        {"id": "ghee", "name": "Ghee (toddler)", "short": "ghee", "amount": "½ tsp", "portions": {"toddler": "½ tsp"}}
      ]
    },
    {
      "label": "Strips & assembly",
      "items": [
        {"id": "wrappers", "name": "Eggless dumpling wrappers", "short": "dumpling wrappers", "amount": "14"},
        {"id": "oil-strips", "name": "Neutral oil, for the strips", "short": "oil", "amount": "1 tbsp"},
        {"id": "white-pepper", "name": "White pepper", "short": "white pepper", "amount": "¼ tsp"},
        {"id": "lettuce", "name": "Butter lettuce", "short": "butter lettuce", "amount": "2 heads"},
        {"id": "celery-leaves", "name": "Celery leaves or coriander", "short": "celery leaves", "amount": "¼ cup"},
        {"id": "chili-crisp", "name": "Jain chili crisp (from above)", "short": "Jain chili crisp", "amount": "to taste"}
      ]
    }
  ],
  "method": [
    {
      "type": "step",
      "title": "Soak the TVP, make the gochujang and chili crisp",
      "items": [
        "Stir {@water-hot}, {@soy:soak}, grated {@ginger:soak}, {@hing:soak} and {@sugar:soak} together in a large bowl; add {@tvp}, stir well, cover and set aside 15–20 min — it returns in Step 3 with all its liquid",
        "Gochujang: in a small bowl, whisk {@gochugaru:gochujang} (or 2 tbsp Kashmiri chili powder + 1 tbsp regular chili powder), {@miso}, {@brown-sugar:gochujang}, {@vinegar} and {@salt:gochujang}",
        "Add {@water-warm} a spoonful at a time, whisking, until a thick glossy paste falls slowly off the spoon; rest 10 min in the bowl — makes about ⅔ cup, you need 2 tbsp today and the rest keeps a month refrigerated",
        "Chili crisp: put {@gochugaru:crisp}, {@sesame:crisp}, {@peanuts}, {@hing:crisp}, {@sugar:crisp} and {@salt:crisp} into a heatproof bowl",
        "Heat {@oil-crisp} with julienned {@ginger:crisp} in a small pan over medium heat, 4–5 min, until the ginger is pale gold and the bubbling slows",
        "Off the heat, wait 30 sec, then pour the hot contents of the pan over the bowl — it sizzles hard; stir and cool completely (it goes on at serving)"
      ]
    },
    {
      "type": "step",
      "title": "Mix the sauce, prep, crisp the strips",
      "items": [
        "Whisk {@soy:sauce}, {@water-sauce}, {@sesame-oil}, {@brown-sugar:sauce} and {@cornstarch} in a bowl until completely smooth",
        "Scoop {=3 tbsp} of this plain sauce into a small bowl and set it aside for the toddler; then stir {@gochujang} into the big bowl",
        "Slice {@celery} thin on a sharp diagonal — long shards, not chunks; shred {@cabbage}, julienne {@bell-pepper}, grate {@ginger:filling}",
        "Julienne {@carrot:toddler} for the toddler; microwave covered with a splash of water, 2 min, until just tender; drain",
        "Stack {@wrappers} and cut into strips about ½ cm wide; separate, wash and thoroughly dry {@lettuce} into cups — wet leaves make the filling slide out",
        "Toss the strips with {@oil-strips} until barely slicked; air-fry in a single layer in the Ninja Crispi at 330°F for 4–6 min, shaking at 3 min — pull them while still pale gold",
        "Set a small handful of plain strips aside for the toddler, salted very lightly; toss the rest with {@white-pepper}, {@sugar:strips} and {@salt:strips} while still warm"
      ]
    },
    {
      "type": "step",
      "title": "Cook the filling",
      "items": [
        "Heat {@oil-filling} in a large sauté pan over medium-high heat",
        "Add {@hing:filling} and swirl for 10 seconds until it smells savory and nutty — don't let it brown",
        "Add {@celery} and grated {@ginger:filling}; cook 2 minutes — the celery should stay squeaky, not go soft",
        "Add {@cabbage} and {@bell-pepper}; cook 5–7 minutes until the cabbage wilts and the pepper just softens",
        "Add the soaked {@tvp} from Step 1 with all its remaining liquid; cook 2 minutes. Stop here — nothing spicy has gone in yet."
      ]
    },
    {
      "type": "toddler",
      "label": "Toddler — pull her filling now, before the gochujang sauce",
      "items": [
        "Scoop about 1 cup of the filling out of the pan into a small saucepan",
        "Add her softened {@carrot:toddler} and the plain reserved sauce {3 tbsp}",
        "Simmer 2 minutes, stirring, until it thickens and coats everything; finish off the heat with {@ghee:toddler}",
        "Serve with her plain salted strips, and torn butter lettuce or a small bowl of rice",
        "Hing and ginger are fine for her — she's only missing the gochujang and the chili crisp"
      ]
    },
    {
      "type": "step",
      "title": "Finish and assemble",
      "items": [
        "Pour the big bowl of spiced sauce from Step 2 over what's left in the pan; cook 5–7 minutes, stirring, until glossy and thick enough to sit in a lettuce leaf",
        "Taste before adding salt — there's soy in both the soak and the sauce; it should be sweet-salty first, heat second",
        "Spoon the filling into the lettuce cups",
        "Top each with the seasoned strips, {@sesame:garnish|toasted sesame seeds} and chopped {@celery-leaves}",
        "Finish with {@chili-crisp}; add the strips at the table — they go soft within minutes of touching the sauce"
      ]
    },
    {
      "type": "tip",
      "label": "Notes",
      "text": "What changed from the original: onion → celery, sliced thin, plus hing bloomed in the oil. Garlic → hing. Green onion → celery leaves or coriander. Carrot → red bell pepper for adults (real carrot stays only in the toddler's portion). Bouillon cube → soy sauce + ginger + hing in the soaking water — cubes are rarely Jain. Gochujang and chili crisp are made from scratch because most jarred brands, Lao Gan Ma included, aren't Jain. \"Chicken spice\" → white pepper, sugar, salt. Buy Chinese-style wrappers (flour, water, salt) — some gyoza wrappers aren't eggless, so check the packet. The Crispi runs hot: 330°F is its floor and plenty here — strips go from pale to burnt in about 45 seconds. No air fryer? Deep-fry the strips in batches in 2 cups of oil until golden. Use a wide sauté pan, not a wok, so the cabbage wilts fast instead of steaming. The gochujang improves overnight. No wrappers? Cut flour tortillas or spring roll pastry into strips. Leftover filling keeps 3 days refrigerated; keep strips and chili crisp at room temperature. For a milder version, halve the gochujang or serve it on the side."
    }
  ],
  "tags": [
    "High-protein",
    "Air fryer"
  ],
  "added": "2026-09-07"
}
