Recipes: import recipes from a spreadsheet: every recipe is checked first and nothing is written until you confirm, they are created as drafts only, existing recipes are never changed, anything not imported comes back as a file with the reasons, and an import can be undone
Recipes: export recipes to a spreadsheet (CSV), one row per ingredient, and download a blank template to fill in
Fix: a recipe can only name this business's own products, variations and units, and a variation must belong to the product it is listed with
Recipes: tick several recipes and print their recipe cards together, one per page, in a single request
Fix: someone who may view recipes but not purchase prices no longer receives purchase prices inside the recipe data
Recipes: cost history for people who may see purchase prices: what each finished production run really cost per unit made, how it changed from the run before, and which ingredient moved it
Recipes: a list of the items you sell that have no recipe, with Create recipe, and a "no recipe needed" mark for items you buy and resell (needs one small database addition)
Recipes: find which recipes use an ingredient (and how much), and see where a recipe is used: its production requests, with the recipe version each ran on, and the saved plans that include it