See the recipe format
Return the recipe as JSON only, in the following Simmer format (schemaVersion 1). Use UK metric units (g, kg, ml, l, tsp, tbsp, piece, clove, pinch, or empty string for counts). Give every ingredient and step a unique stable ID. Reference ingredients from each step using ingredientId. For partial use, put the numeric quantity in that step reference, in the ingredient's unit. Use quantity: null and unit: "" for "to taste". Optional quantityMax supports ranges. Optional scalable: false preserves a fixed amount. Write measurements inside instructions as {ingredient:ID} so serving changes remain correct; do not hard-code quantities in the prose. Times are whole minutes. Use an empty image unless you have an HTTPS image URL. No extra fields. Here is a complete example:
{
"schemaVersion": 1,
"title": "Creamy chicken orzo",
"description": "A comforting one-pan dinner with tender chicken, silky orzo and a handful of spinach. A little lemon keeps everything bright.",
"servings": 4,
"prepTime": 10,
"cookTime": 25,
"image": "/images/orzo-final.jpg",
"tags": [
"Dinner",
"Chicken",
"One pot"
],
"notes": "Add a pinch of chilli flakes if you like a little heat.",
"source": "Starter recipe · Simmer",
"ingredients": [
{
"id": "chicken",
"name": "chicken breast",
"quantity": 500,
"unit": "g",
"note": "cut into bite-sized pieces",
"scalable": true
},
{
"id": "oil",
"name": "olive oil",
"quantity": 1,
"unit": "tbsp",
"note": "",
"scalable": true
},
{
"id": "onion",
"name": "onion",
"quantity": 1,
"unit": "",
"note": "finely diced",
"scalable": true
},
{
"id": "garlic",
"name": "garlic",
"quantity": 3,
"unit": "clove",
"note": "minced",
"scalable": true
},
{
"id": "orzo",
"name": "orzo",
"quantity": 250,
"unit": "g",
"note": "",
"scalable": true
},
{
"id": "stock",
"name": "chicken stock",
"quantity": 700,
"unit": "ml",
"note": "hot",
"scalable": true
},
{
"id": "cream",
"name": "double cream",
"quantity": 100,
"unit": "ml",
"note": "",
"scalable": true
},
{
"id": "spinach",
"name": "spinach",
"quantity": 100,
"unit": "g",
"note": "",
"scalable": true
},
{
"id": "parmesan",
"name": "parmesan",
"quantity": 40,
"unit": "g",
"note": "grated",
"scalable": true
},
{
"id": "lemon",
"name": "lemon juice",
"quantity": 1,
"unit": "tbsp",
"note": "",
"scalable": true
},
{
"id": "seasoning",
"name": "salt and black pepper",
"quantity": null,
"unit": "",
"note": "",
"scalable": false
}
],
"steps": [
{
"id": "brown",
"instruction": "Heat {ingredient:oil} in a large, deep frying pan. Season the chicken, then fry for 5–6 minutes until golden on the outside. Transfer to a plate; it will finish cooking in the stock.",
"ingredients": [
{
"ingredientId": "oil"
},
{
"ingredientId": "chicken"
},
{
"ingredientId": "seasoning"
}
]
},
{
"id": "soften",
"instruction": "Add the onion to the same pan and soften for 4 minutes. Stir in the garlic and cook for another minute.",
"ingredients": [
{
"ingredientId": "onion"
},
{
"ingredientId": "garlic"
}
]
},
{
"id": "simmer",
"instruction": "Stir in the orzo, then pour in {ingredient:stock}. Return the chicken to the pan. Bring to a gentle simmer and cook for 12–15 minutes, stirring regularly, until the orzo is tender and the chicken is cooked through. Add a splash of water if needed.",
"ingredients": [
{
"ingredientId": "orzo"
},
{
"ingredientId": "stock"
},
{
"ingredientId": "chicken"
}
],
"timerSeconds": 720
},
{
"id": "finish",
"instruction": "Stir in {ingredient:cream}, the spinach and parmesan. Cook for 2 minutes until the spinach wilts and the sauce is silky.",
"ingredients": [
{
"ingredientId": "cream"
},
{
"ingredientId": "spinach"
},
{
"ingredientId": "parmesan"
}
]
},
{
"id": "serve",
"instruction": "Add the lemon juice, taste and adjust the seasoning. Check the chicken is fully cooked, then serve in warm bowls.",
"ingredients": [
{
"ingredientId": "lemon"
},
{
"ingredientId": "seasoning"
}
]
}
]
}