From a trialing user (Discord, 2026-08-11), as a follow-on to global aisle aliases (see the alias issue). Aliases cover same item, different name (bell pepper / capsicum); this is about different items that substitute for each other in a recipe:
I could use butter or oil for certain cooking process. If I'm out of butter, but do have oil, I would want the API to count that ingredient as in stock!
Sketch from the conversation: some way to declare substitutions — either in the .cook file itself (e.g. an @butter|oil{}-style alternative) or in workspace config — so that pantry recipes counts a recipe as cookable when any acceptable substitute is in the pantry, and the shopping list / recipe display can show the alternative.
Needs discussion on where the declaration lives (recipe syntax would require a spec update; a workspace-level substitutions config would not) and how it interacts with aisle aliases.
From a trialing user (Discord, 2026-08-11), as a follow-on to global aisle aliases (see the alias issue). Aliases cover same item, different name (bell pepper / capsicum); this is about different items that substitute for each other in a recipe:
Sketch from the conversation: some way to declare substitutions — either in the .cook file itself (e.g. an
@butter|oil{}-style alternative) or in workspace config — so thatpantry recipescounts a recipe as cookable when any acceptable substitute is in the pantry, and the shopping list / recipe display can show the alternative.Needs discussion on where the declaration lives (recipe syntax would require a spec update; a workspace-level substitutions config would not) and how it interacts with aisle aliases.