# levels/recipes.yaml — the campaign recipe book (PLAN §5/§8, A8). # # Every dish the game knows lives here; no Python enumerates recipes. The # schema is `src/undercooked/sim/recipe.py` and the reference is # docs/LEVELS.md — every model is strict (`extra="forbid"`), so a typo here # fails the load loudly instead of silently defaulting. # # Step lists mirror PLAN §5's station pipelines: pick from the spawn shelf, # chop (~0.9 s), cook on the stove, plate at the prep station, serve at the # window. `seconds` feeds only the validator's greedy target-plausibility # bound; the simulation (phase 04) re-enacts these steps per tick. # Catalog of the item kinds the campaign's dishes consume (documentation of # intent; spawn shelves are what actually put items on the floor). ingredients: [tomato, onion, lettuce, dough, patty, rice, fish, plate] recipes: # tomato + onion -> chop -> pot on the stove -> plate soup: id: soup name: Tomato Soup base_score: 40 ingredients: - {kind: tomato, form: raw} - {kind: onion, form: raw} steps: - {kind: pick, station: spawn_shelf} - {kind: chop, station: chop_board, seconds: 0.9} - {kind: cook, station: stove, seconds: 5.0} - {kind: plate, station: prep, seconds: 0.4} - {kind: serve, station: serve} tags: [hot, soup] # lettuce + tomato -> chop -> plate; the fast, no-fire dish salad: id: salad name: Garden Salad base_score: 30 ingredients: - {kind: lettuce, form: raw} - {kind: tomato, form: raw} steps: - {kind: pick, station: spawn_shelf} - {kind: chop, station: chop_board, seconds: 0.9} - {kind: plate, station: prep, seconds: 0.4} - {kind: serve, station: serve} tags: [cold, quick] # rice + onion straight onto the stove (PLAN §5: raw rice needs no board) fried_rice: id: fried_rice name: Fried Rice base_score: 50 ingredients: - {kind: rice, form: raw} - {kind: onion, form: raw} steps: - {kind: pick, station: spawn_shelf} - {kind: cook, station: stove, seconds: 6.0} - {kind: plate, station: prep, seconds: 0.4} - {kind: serve, station: serve} tags: [hot, grain] # patty + dough + lettuce -> chop + pan on the stove -> plate. Defined now; # later levels (phase 11) put it in an order pool. burger: id: burger name: Chef's Burger base_score: 70 ingredients: - {kind: patty, form: raw} - {kind: dough, form: raw} - {kind: lettuce, form: raw} steps: - {kind: pick, station: spawn_shelf} - {kind: chop, station: chop_board, seconds: 0.9} - {kind: cook, station: stove, seconds: 5.0} - {kind: plate, station: prep, seconds: 0.5} - {kind: serve, station: serve} tags: [hot, stacked]