diff --git a/data/recipe-book-backup.json b/data/recipe-book-backup.json index 8e3c861..8647706 100644 --- a/data/recipe-book-backup.json +++ b/data/recipe-book-backup.json @@ -2,20 +2,20 @@ "$schema": "https://formulation.app/schemas/backup-v1.json", "format_version": "1.0.0", "app_version": "2.0.0", - "exported_at": "2026-08-18T23:24:08.512Z", + "exported_at": "2026-08-20T18:54:08.164Z", "summary": { "units_count": 30, "equipment_count": 13, "prep_actions_count": 7, - "ingredients_count": 610, - "recipes_count": 629, + "ingredients_count": 263, + "recipes_count": 154, "purchase_items_count": 39, "price_observations_count": 53, "source_mappings_count": 165, - "collections_count": 1, + "collections_count": 0, "inventory_locations_count": 5, "inventory_counts_count": 1, - "total_records_count": 1500 + "total_records_count": 677 }, "data": { "units": [ @@ -453,15 +453,15 @@ ], "ingredients": [ { - "id": "10x_sugar", + "id": "1_1g_garlic_powder", "schema_version": 2, - "name": "10X Sugar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", + "name": "1.1g garlic powder", + "status": "archived", + "categories_json": "[]", "tags_json": "[]", "description": null, - "source_json": "{}", - "deleted_at": null, + "source_json": "{\"source_type\":\"ai_import\",\"title\":\"Recipe ingredient import\",\"reviewed\":false}", + "deleted_at": "2026-08-19 14:31:11", "aliases": [], "prep_actions": [], "measure_conversions": [], @@ -487,36 +487,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "agar_agar", - "schema_version": 2, - "name": "Agar Agar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "agave_syrup", - "schema_version": 2, - "name": "Agave Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "allspice", "schema_version": 2, @@ -556,36 +526,6 @@ ], "density_measurements": [] }, - { - "id": "almond", - "schema_version": 2, - "name": "Almonds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "almond_cream", - "schema_version": 2, - "name": "Almond Cream", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "almond_extract", "schema_version": 2, @@ -616,246 +556,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "almond_milk", - "schema_version": 2, - "name": "Almond Milk", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "almond_paste", - "schema_version": 2, - "name": "Almond Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "amaretto", - "schema_version": 2, - "name": "Amaretto", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "amaretto_or_marsala_wine", - "schema_version": 2, - "name": "Amaretto Or Marsala Wine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "anise_seeds", - "schema_version": 2, - "name": "Anise Seeds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "anisette_liqueur", - "schema_version": 2, - "name": "Anisette Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple", - "schema_version": 2, - "name": "Apple", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_brandy", - "schema_version": 2, - "name": "Apple Brandy", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_cider", - "schema_version": 2, - "name": "Apple Cider", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_cider_reduction", - "schema_version": 2, - "name": "Apple Cider Reduction", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_compote", - "schema_version": 2, - "name": "Apple Compote", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_compote_puree", - "schema_version": 2, - "name": "Apple Compote Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_juice", - "schema_version": 2, - "name": "Apple Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_pectin", - "schema_version": 2, - "name": "Apple Pectin", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apple_puree", - "schema_version": 2, - "name": "Apple Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "apples", - "schema_version": 2, - "name": "Apples", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "apricot_jam", "schema_version": 2, @@ -886,66 +586,6 @@ ], "density_measurements": [] }, - { - "id": "apricot_puree", - "schema_version": 2, - "name": "Apricot Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "arborio_rice", - "schema_version": 2, - "name": "Arborio Rice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "armagnac", - "schema_version": 2, - "name": "Armagnac", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "armagnac_or_rum", - "schema_version": 2, - "name": "Armagnac Or Rum", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "ascorbic_acid", "schema_version": 2, @@ -1085,66 +725,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "banana_liqueur", - "schema_version": 2, - "name": "Banana Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "banana_puree", - "schema_version": 2, - "name": "Banana Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "bananas", - "schema_version": 2, - "name": "Bananas", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "bananas_puree", - "schema_version": 2, - "name": "Bananas Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "barley_malt_powder", "schema_version": 2, @@ -1243,36 +823,6 @@ ], "density_measurements": [] }, - { - "id": "basil_leaves", - "schema_version": 2, - "name": "Basil Leaves", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "bay_leaf", - "schema_version": 2, - "name": "Bay Leaf", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "bbq_sauce_hickory_smoke", "schema_version": 2, @@ -1321,21 +871,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "beef_or_chicken_stock", - "schema_version": 2, - "name": "Beef Or Chicken Stock", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "beer", "schema_version": 2, @@ -1366,42 +901,12 @@ ], "density_measurements": [] }, - { - "id": "beet_puree", - "schema_version": 2, - "name": "Beet Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "black_cherry_puree", - "schema_version": 2, - "name": "Black Cherry Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "black_pepper", "schema_version": 2, "name": "Black Pepper", "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", + "categories_json": "[\"pantry\",\"baking\"]", "tags_json": "[]", "description": null, "source_json": "{}", @@ -1450,111 +955,6 @@ ], "density_measurements": [] }, - { - "id": "black_sesame_seeds", - "schema_version": 2, - "name": "Black Sesame Seeds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "black_sesame_tahini_paste", - "schema_version": 2, - "name": "Black Sesame Tahini Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "blackberries", - "schema_version": 2, - "name": "Blackberries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "blackberry_brandy", - "schema_version": 2, - "name": "Blackberry Brandy", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "blackberry_puree", - "schema_version": 2, - "name": "Blackberry Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "blood_orange_puree", - "schema_version": 2, - "name": "Blood Orange Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "blueberries", - "schema_version": 2, - "name": "Blueberries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "blueberry", "schema_version": 2, @@ -1579,66 +979,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "blueberry_puree", - "schema_version": 2, - "name": "Blueberry Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "bourbon", - "schema_version": 2, - "name": "Bourbon", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "bran_flour", - "schema_version": 2, - "name": "Bran Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "brandy", - "schema_version": 2, - "name": "Brandy", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "bread_crumbs", "schema_version": 2, @@ -1669,81 +1009,6 @@ ], "density_measurements": [] }, - { - "id": "brie_cheese", - "schema_version": 2, - "name": "Brie Cheese", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "brioche", - "schema_version": 2, - "name": "Brioche", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "brioche_crumbs", - "schema_version": 2, - "name": "Brioche Crumbs", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "brioche_milk", - "schema_version": 2, - "name": "Brioche Milk", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "brown_butter", - "schema_version": 2, - "name": "Brown Butter", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "brown_sugar", "schema_version": 2, @@ -1787,21 +1052,6 @@ ], "density_measurements": [] }, - { - "id": "burgundy", - "schema_version": 2, - "name": "Burgundy", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "butter", "schema_version": 2, @@ -1865,21 +1115,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "butter_or_buttercream", - "schema_version": 2, - "name": "Butter Or Buttercream", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "buttermilk", "schema_version": 2, @@ -1943,96 +1178,6 @@ ], "density_measurements": [] }, - { - "id": "cabbage", - "schema_version": 2, - "name": "Cabbage", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "campari", - "schema_version": 2, - "name": "Campari", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "candied_ginger", - "schema_version": 2, - "name": "Candied Ginger", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "candied_lemon_zest", - "schema_version": 2, - "name": "Candied Lemon Zest", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "candied_orange_peel", - "schema_version": 2, - "name": "Candied Orange Peel", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "canned_black_beans", - "schema_version": 2, - "name": "Canned Black Beans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "canola_oil", "schema_version": 2, @@ -2067,36 +1212,6 @@ ], "density_measurements": [] }, - { - "id": "caramel", - "schema_version": 2, - "name": "Caramel", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "caraway_seeds", - "schema_version": 2, - "name": "Caraway Seeds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cardamom", "schema_version": 2, @@ -2156,51 +1271,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "carrots", - "schema_version": 2, - "name": "Carrots", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cashew_nuts", - "schema_version": 2, - "name": "Cashew Nuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cassis_puree", - "schema_version": 2, - "name": "Cassis Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cayenne", "schema_version": 2, @@ -2240,51 +1310,6 @@ ], "density_measurements": [] }, - { - "id": "cayenne_pepper", - "schema_version": 2, - "name": "Cayenne Pepper", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "champagne", - "schema_version": 2, - "name": "Champagne", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "champagne_vinegar", - "schema_version": 2, - "name": "Champagne Vinegar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cheddar_cheese", "schema_version": 2, @@ -2305,51 +1330,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "chestnut_cream", - "schema_version": 2, - "name": "Chestnut Cream", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "chestnut_flour", - "schema_version": 2, - "name": "Chestnut Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "chestnut_paste", - "schema_version": 2, - "name": "Chestnut Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "chicken_base", "schema_version": 2, @@ -2526,81 +1506,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "chives", - "schema_version": 2, - "name": "Chives", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "chocolate_chips", - "schema_version": 2, - "name": "Chocolate Chips", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "chocolate_dark", - "schema_version": 2, - "name": "Chocolate", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "chocolate_milk", - "schema_version": 2, - "name": "Milk Chocolate", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "chocolate_white", - "schema_version": 2, - "name": "White Chocolate", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cilantro", "schema_version": 2, @@ -2688,51 +1593,6 @@ ], "density_measurements": [] }, - { - "id": "cinnamon_infusion", - "schema_version": 2, - "name": "Cinnamon Infusion", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cinnamon_stick", - "schema_version": 2, - "name": "Cinnamon Stick", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cinnamon_sticks", - "schema_version": 2, - "name": "Cinnamon Sticks", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "citric_acid", "schema_version": 2, @@ -2791,36 +1651,6 @@ ], "density_measurements": [] }, - { - "id": "cocoa_butter", - "schema_version": 2, - "name": "Cocoa Butter", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cocoa_nibs", - "schema_version": 2, - "name": "Cocoa Nibs", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cocoa_powder", "schema_version": 2, @@ -2860,21 +1690,6 @@ ], "density_measurements": [] }, - { - "id": "coconut", - "schema_version": 2, - "name": "Coconut", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "coconut_milk", "schema_version": 2, @@ -2918,126 +1733,6 @@ ], "density_measurements": [] }, - { - "id": "coconut_puree", - "schema_version": 2, - "name": "Coconut Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "coffee", - "schema_version": 2, - "name": "Coffee", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "coffee_beans", - "schema_version": 2, - "name": "Coffee Beans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "coffee_extract", - "schema_version": 2, - "name": "Coffee Extract", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "coffee_liqueur", - "schema_version": 2, - "name": "Coffee Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "coffee_liquor", - "schema_version": 2, - "name": "Coffee Liquor", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cognac", - "schema_version": 2, - "name": "Cognac", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "condensed_milk", - "schema_version": 2, - "name": "Condensed Milk", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "confectioners_sugar", "schema_version": 2, @@ -3168,36 +1863,6 @@ ], "density_measurements": [] }, - { - "id": "corn_oil", - "schema_version": 2, - "name": "Corn Oil", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "corn_syrup", - "schema_version": 2, - "name": "Corn Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "corn_syrup_light", "schema_version": 2, @@ -3237,21 +1902,6 @@ ], "density_measurements": [] }, - { - "id": "cornmeal", - "schema_version": 2, - "name": "Cornmeal", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cornstarch", "schema_version": 2, @@ -3282,81 +1932,6 @@ ], "density_measurements": [] }, - { - "id": "cr_me_anglaise", - "schema_version": 2, - "name": "Crème Anglaise", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cr_me_de_cassis", - "schema_version": 2, - "name": "Crème De Cassis", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cr_me_fra_che", - "schema_version": 2, - "name": "Crème Fraîche", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cr_me_fraiche", - "schema_version": 2, - "name": "Crème Fraiche", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "cranberries", - "schema_version": 2, - "name": "Cranberries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cream_cheese", "schema_version": 2, @@ -3377,40 +1952,10 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "cream_of_tartar", - "schema_version": 2, - "name": "Cream Of Tartar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "croquant", - "schema_version": 2, - "name": "Croquant", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "cumin", "schema_version": 2, - "name": "cumin seed", + "name": "cumin", "status": "active", "categories_json": "[\"spice\"]", "tags_json": "[]", @@ -3420,7 +1965,7 @@ "aliases": [ { "name": "cumin", - "kind": "search" + "kind": "common" } ], "prep_actions": [], @@ -3446,21 +1991,6 @@ ], "density_measurements": [] }, - { - "id": "custard_base", - "schema_version": 2, - "name": "Custard Base", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "dark_chocolate", "schema_version": 2, @@ -3485,21 +2015,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "dark_chocolate_chips", - "schema_version": 2, - "name": "Dark Chocolate Chips", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "dark_cocoa_powder", "schema_version": 2, @@ -3539,111 +2054,6 @@ ], "density_measurements": [] }, - { - "id": "dark_corn_syrup", - "schema_version": 2, - "name": "Dark Corn Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dark_or_spiced_rum", - "schema_version": 2, - "name": "Dark Or Spiced Rum", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dark_rum", - "schema_version": 2, - "name": "Dark Rum", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dark_rum_or_bourbon", - "schema_version": 2, - "name": "Dark Rum Or Bourbon", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dark_rum_or_brandy", - "schema_version": 2, - "name": "Dark Rum Or Brandy", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "desiccated_coconut", - "schema_version": 2, - "name": "Desiccated Coconut", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dessert_wine", - "schema_version": 2, - "name": "Dessert Wine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "dextrose", "schema_version": 2, @@ -3694,36 +2104,6 @@ ], "density_measurements": [] }, - { - "id": "dried_apricots", - "schema_version": 2, - "name": "Dried Apricots", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dried_cherries", - "schema_version": 2, - "name": "Dried Cherries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "dried_chilis", "schema_version": 2, @@ -3762,96 +2142,6 @@ ], "density_measurements": [] }, - { - "id": "dried_currants", - "schema_version": 2, - "name": "Dried Currants", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dried_figs", - "schema_version": 2, - "name": "Dried Figs", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dried_fruit", - "schema_version": 2, - "name": "Dried Fruit", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dried_fruits", - "schema_version": 2, - "name": "Dried Fruits", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "dried_pears", - "schema_version": 2, - "name": "Dried Pears", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "egg_white_powder", - "schema_version": 2, - "name": "Egg White Powder", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "egg_whites", "schema_version": 2, @@ -3942,36 +2232,6 @@ ], "density_measurements": [] }, - { - "id": "elderflower_syrup", - "schema_version": 2, - "name": "Elderflower Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "espresso_beans", - "schema_version": 2, - "name": "Espresso Beans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "espresso_powder", "schema_version": 2, @@ -3992,36 +2252,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "evaporated_milk", - "schema_version": 2, - "name": "Evaporated Milk", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "extra_virgin_olive_oil", - "schema_version": 2, - "name": "Extra Virgin Olive Oil", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "fennel_seed", "schema_version": 2, @@ -4061,81 +2291,6 @@ ], "density_measurements": [] }, - { - "id": "feuilletine", - "schema_version": 2, - "name": "Feuilletine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fine_sea_salt", - "schema_version": 2, - "name": "Fine Sea Salt", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "five_spice_powder", - "schema_version": 2, - "name": "Five-Spice Powder", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "flaked_coconut", - "schema_version": 2, - "name": "Flaked Coconut", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "flax_seed_oil", - "schema_version": 2, - "name": "Flax Seed Oil", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "flour_all_purpose", "schema_version": 2, @@ -4270,156 +2425,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "framboise_eau_de_vie", - "schema_version": 2, - "name": "Framboise Eau-de-Vie", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_chives", - "schema_version": 2, - "name": "Fresh Chives", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_dill", - "schema_version": 2, - "name": "Fresh Dill", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_figs", - "schema_version": 2, - "name": "Fresh Figs", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_ginger", - "schema_version": 2, - "name": "Fresh Ginger", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_parsley", - "schema_version": 2, - "name": "Fresh Parsley", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_rosemary", - "schema_version": 2, - "name": "Fresh Rosemary", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fresh_thyme", - "schema_version": 2, - "name": "Fresh Thyme", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fromage_blanc", - "schema_version": 2, - "name": "Fromage Blanc", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "fruit_puree", - "schema_version": 2, - "name": "Fruit Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "garlic", "schema_version": 2, @@ -4532,66 +2537,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "gelatin_sheet", - "schema_version": 2, - "name": "Gelatin Sheets", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "genoise", - "schema_version": 2, - "name": "Genoise", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "gianduja", - "schema_version": 2, - "name": "Gianduja", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "gin_or_lemon_vodka", - "schema_version": 2, - "name": "Gin Or Lemon Vodka", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "ginger", "schema_version": 2, @@ -4693,21 +2638,6 @@ ], "density_measurements": [] }, - { - "id": "ginger_juice", - "schema_version": 2, - "name": "Ginger Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "glucose", "schema_version": 2, @@ -4723,81 +2653,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "glucose_syrup", - "schema_version": 2, - "name": "Glucose Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "goat_cheese", - "schema_version": 2, - "name": "Goat Cheese", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "goat_milk", - "schema_version": 2, - "name": "Goat Milk", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "golden_raisins", - "schema_version": 2, - "name": "Golden Raisins", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "golden_rasins", - "schema_version": 2, - "name": "Golden Rasins", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "graham_cracker", "schema_version": 2, @@ -4842,66 +2697,6 @@ ], "density_measurements": [] }, - { - "id": "graham_cracker_crumbs", - "schema_version": 2, - "name": "Graham Cracker Crumbs", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "grand_marnier", - "schema_version": 2, - "name": "Grand Marnier", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "greek_yogurt", - "schema_version": 2, - "name": "Greek Yogurt", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "green_apple_puree", - "schema_version": 2, - "name": "Green Apple Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "green_onion", "schema_version": 2, @@ -4936,21 +2731,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "grenadine", - "schema_version": 2, - "name": "Grenadine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "ground_beef_73_27_raw", "schema_version": 2, @@ -4971,126 +2751,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "gruy_re_cheese", - "schema_version": 2, - "name": "Gruyère Cheese", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "guava_puree", - "schema_version": 2, - "name": "Guava Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "half_half", - "schema_version": 2, - "name": "Half & Half", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "hazelnut", - "schema_version": 2, - "name": "Hazelnuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "hazelnut_flour", - "schema_version": 2, - "name": "Hazelnut Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "hazelnut_liqueur", - "schema_version": 2, - "name": "Hazelnut Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "hazelnut_oil", - "schema_version": 2, - "name": "Hazelnut Oil", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "hazelnut_paste", - "schema_version": 2, - "name": "Hazelnut Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "heavy_cream", "schema_version": 2, @@ -5111,36 +2771,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "herbes_de_provence", - "schema_version": 2, - "name": "Herbes De Provence", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "herbs_de_provence", - "schema_version": 2, - "name": "Herbs De Provence", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "hidden_valley_ranch_dry_seasoning", "schema_version": 2, @@ -5282,36 +2912,6 @@ ], "density_measurements": [] }, - { - "id": "ice_cream_stabilizer", - "schema_version": 2, - "name": "Ice Cream Stabilizer", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "icing_fondant", - "schema_version": 2, - "name": "Icing Fondant", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "imitation_crab", "schema_version": 2, @@ -5342,51 +2942,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "inclusions", - "schema_version": 2, - "name": "Inclusions", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "instant_espresso_powder", - "schema_version": 2, - "name": "Instant Espresso Powder", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "instant_tapioca", - "schema_version": 2, - "name": "Instant Tapioca", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "instant_yeast", "schema_version": 2, @@ -5430,21 +2985,6 @@ ], "density_measurements": [] }, - { - "id": "invert_sugar", - "schema_version": 2, - "name": "Invert Sugar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "italian_sausage", "schema_version": 2, @@ -5503,21 +3043,6 @@ ], "density_measurements": [] }, - { - "id": "kalamata_olives", - "schema_version": 2, - "name": "Kalamata Olives", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "ketchup", "schema_version": 2, @@ -5557,36 +3082,6 @@ ], "density_measurements": [] }, - { - "id": "key_lime_juice", - "schema_version": 2, - "name": "Key Lime Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "kirschwasser", - "schema_version": 2, - "name": "Kirschwasser", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "lactic_acid_88", "schema_version": 2, @@ -5636,36 +3131,6 @@ ], "density_measurements": [] }, - { - "id": "lavender_buds", - "schema_version": 2, - "name": "Lavender Buds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lavender_honey", - "schema_version": 2, - "name": "Lavender Honey", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "lecithin", "schema_version": 2, @@ -5754,51 +3219,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "lemon", - "schema_version": 2, - "name": "Lemons", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lemon_confit", - "schema_version": 2, - "name": "Lemon Confit", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lemon_curd", - "schema_version": 2, - "name": "Lemon Curd", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "lemon_juice", "schema_version": 2, @@ -5843,22 +3263,7 @@ "schema_version": 2, "name": "Lemon Or Lime Juice", "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lemon_or_lime_streusel", - "schema_version": 2, - "name": "Lemon Or Lime Streusel", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", + "categories_json": "[\"pantry\",\"baking\"]", "tags_json": "[]", "description": null, "source_json": "{}", @@ -5907,51 +3312,6 @@ ], "density_measurements": [] }, - { - "id": "lemons", - "schema_version": 2, - "name": "Lemons", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "light_corn_syrup", - "schema_version": 2, - "name": "Light Corn Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lime", - "schema_version": 2, - "name": "Lime", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "lime_juice", "schema_version": 2, @@ -5991,66 +3351,6 @@ ], "density_measurements": [] }, - { - "id": "lime_puree", - "schema_version": 2, - "name": "Lime Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lime_zest", - "schema_version": 2, - "name": "Lime Zest", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "limes", - "schema_version": 2, - "name": "Limes", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "liqueur", - "schema_version": 2, - "name": "Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "liquid_sunflower_lecithin", "schema_version": 2, @@ -6066,66 +3366,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "loose_black_tea", - "schema_version": 2, - "name": "Loose Black Tea", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "loose_tea", - "schema_version": 2, - "name": "Loose Tea", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "lychee_puree", - "schema_version": 2, - "name": "Lychee Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "macadamia_nuts", - "schema_version": 2, - "name": "Macadamia Nuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "mace_nutmeg", "schema_version": 2, @@ -6165,96 +3405,6 @@ ], "density_measurements": [] }, - { - "id": "maderia", - "schema_version": 2, - "name": "Maderia", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "malt_powder", - "schema_version": 2, - "name": "Malt Powder", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mandarin_orange_juice", - "schema_version": 2, - "name": "Mandarin Orange Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mandarin_orange_puree", - "schema_version": 2, - "name": "Mandarin Orange Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mandarin_orange_zest", - "schema_version": 2, - "name": "Mandarin Orange Zest", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mango_puree", - "schema_version": 2, - "name": "Mango Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "maple_extract", "schema_version": 2, @@ -6270,36 +3420,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "maple_syrup", - "schema_version": 2, - "name": "Maple Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "margarine", - "schema_version": 2, - "name": "Margarine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "marjoram", "schema_version": 2, @@ -6339,66 +3459,6 @@ ], "density_measurements": [] }, - { - "id": "mascarpone", - "schema_version": 2, - "name": "Mascarpone", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mashed_potatoes", - "schema_version": 2, - "name": "Mashed Potatoes", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "matcha", - "schema_version": 2, - "name": "Matcha", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "matcha_powder", - "schema_version": 2, - "name": "Matcha Powder", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "mayonnaise", "schema_version": 2, @@ -6438,21 +3498,6 @@ ], "density_measurements": [] }, - { - "id": "melted_chocolate", - "schema_version": 2, - "name": "Melted Chocolate", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "michiu_wine", "schema_version": 2, @@ -6497,36 +3542,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "milk_chocolate_chips", - "schema_version": 2, - "name": "Milk Chocolate Chips", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "milk_powder", - "schema_version": 2, - "name": "Milk Powder", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "milk_powder_whole", "schema_version": 2, @@ -6562,21 +3577,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "mini_chocolate_chips", - "schema_version": 2, - "name": "Mini Chocolate Chips", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "mint_dried", "schema_version": 2, @@ -6620,66 +3620,6 @@ ], "density_measurements": [] }, - { - "id": "mint_leaves", - "schema_version": 2, - "name": "Mint Leaves", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mint_liqueur", - "schema_version": 2, - "name": "Mint Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mint_paste", - "schema_version": 2, - "name": "Mint Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "mixed_nuts", - "schema_version": 2, - "name": "Mixed Nuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "molasses", "schema_version": 2, @@ -6769,21 +3709,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "muscovado_sugar", - "schema_version": 2, - "name": "Muscovado Sugar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "mustard_dijon", "schema_version": 2, @@ -6828,36 +3753,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "neutral_glaze", - "schema_version": 2, - "name": "Neutral Glaze", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "non_fat_quark_cheese", - "schema_version": 2, - "name": "Non-Fat Quark Cheese", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "nonfat_milk_powder", "schema_version": 2, @@ -6878,51 +3773,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "nut_flour", - "schema_version": 2, - "name": "Nut Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "nut_paste", - "schema_version": 2, - "name": "Nut Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "nut_streusel", - "schema_version": 2, - "name": "Nut Streusel", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "nutmeg", "schema_version": 2, @@ -6962,21 +3812,6 @@ ], "density_measurements": [] }, - { - "id": "nuts", - "schema_version": 2, - "name": "Nuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "oats", "schema_version": 2, @@ -6997,21 +3832,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "oil_cured_black_olives", - "schema_version": 2, - "name": "Oil-Cured Black Olives", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "olive_oil", "schema_version": 2, @@ -7046,36 +3866,6 @@ ], "density_measurements": [] }, - { - "id": "olive_oil_maple_granola", - "schema_version": 2, - "name": "Olive Oil & Maple Granola", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "onion", - "schema_version": 2, - "name": "Onion", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "onion_dehydrated_flake", "schema_version": 2, @@ -7232,21 +4022,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "orange_flower_water", - "schema_version": 2, - "name": "Orange Flower Water", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "orange_juice", "schema_version": 2, @@ -7306,66 +4081,6 @@ ], "density_measurements": [] }, - { - "id": "orange_juice_saffron_reduction", - "schema_version": 2, - "name": "Orange Juice-Saffron Reduction", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "orange_liqueur", - "schema_version": 2, - "name": "Orange Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "orange_oil", - "schema_version": 2, - "name": "Orange Oil", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "orange_streusel", - "schema_version": 2, - "name": "Orange Streusel", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "orange_zest", "schema_version": 2, @@ -7405,21 +4120,6 @@ ], "density_measurements": [] }, - { - "id": "oranges", - "schema_version": 2, - "name": "Oranges", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "oregano", "schema_version": 2, @@ -7450,21 +4150,6 @@ ], "density_measurements": [] }, - { - "id": "organic_dried_rosebuds_petals", - "schema_version": 2, - "name": "Organic Dried Rosebuds & Petals", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "oyster_sauce", "schema_version": 2, @@ -7495,21 +4180,6 @@ ], "density_measurements": [] }, - { - "id": "papaya_puree", - "schema_version": 2, - "name": "Papaya Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "paprika", "schema_version": 2, @@ -7631,96 +4301,6 @@ ], "density_measurements": [] }, - { - "id": "passion_fruit_juice", - "schema_version": 2, - "name": "Passion Fruit Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "passion_fruit_puree", - "schema_version": 2, - "name": "Passion Fruit Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pastry_cream", - "schema_version": 2, - "name": "Pastry Cream", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pastry_cream_base", - "schema_version": 2, - "name": "Pastry Cream Base", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "peach_puree", - "schema_version": 2, - "name": "Peach Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "peach_schnapps", - "schema_version": 2, - "name": "Peach Schnapps", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "peanut_butter", "schema_version": 2, @@ -7741,96 +4321,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "peanuts", - "schema_version": 2, - "name": "Peanuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pear", - "schema_version": 2, - "name": "Pear", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pear_liqueur", - "schema_version": 2, - "name": "Pear Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pear_puree", - "schema_version": 2, - "name": "Pear Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pecan", - "schema_version": 2, - "name": "Pecans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "peeled_peaches", - "schema_version": 2, - "name": "Peeled Peaches", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "pickle_juice", "schema_version": 2, @@ -7846,36 +4336,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "pine_nuts", - "schema_version": 2, - "name": "Pine Nuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pineapple", - "schema_version": 2, - "name": "Pineapple", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "pineapple_crushed_in_juice", "schema_version": 2, @@ -7906,21 +4366,6 @@ ], "density_measurements": [] }, - { - "id": "pink_grapefruit_juice", - "schema_version": 2, - "name": "Pink Grapefruit Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "pinto_beans_dry_uncooked", "schema_version": 2, @@ -7941,36 +4386,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "pistachio", - "schema_version": 2, - "name": "Pistachios", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "pistachio_flour", - "schema_version": 2, - "name": "Pistachio Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "pistachio_nuts", "schema_version": 2, @@ -7991,111 +4406,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "pistachio_paste", - "schema_version": 2, - "name": "Pistachio Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "plum_brandy", - "schema_version": 2, - "name": "Plum Brandy", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "plum_jam", - "schema_version": 2, - "name": "Plum Jam", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "plum_puree", - "schema_version": 2, - "name": "Plum Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "poolish", - "schema_version": 2, - "name": "Poolish", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "poppy_seeds", - "schema_version": 2, - "name": "Poppy Seeds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "port_wine", - "schema_version": 2, - "name": "Port Wine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "potato_russet", "schema_version": 2, @@ -8126,81 +4436,6 @@ ], "density_measurements": [] }, - { - "id": "potato_starch", - "schema_version": 2, - "name": "Potato Starch", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "powdered_glucose", - "schema_version": 2, - "name": "Powdered Glucose", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "powered_glucose", - "schema_version": 2, - "name": "Powered Glucose", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "powered_sugar", - "schema_version": 2, - "name": "Powered Sugar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "praline_paste", - "schema_version": 2, - "name": "Praline Paste", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "provolone_cheese", "schema_version": 2, @@ -8231,51 +4466,6 @@ ], "density_measurements": [] }, - { - "id": "prune_puree", - "schema_version": 2, - "name": "Prune Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "prunes", - "schema_version": 2, - "name": "Prunes", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "puffed_rice", - "schema_version": 2, - "name": "Puffed Rice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "pumpkin_puree", "schema_version": 2, @@ -8306,36 +4496,6 @@ ], "density_measurements": [] }, - { - "id": "pure_maple_syrup", - "schema_version": 2, - "name": "Pure Maple Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "purple_gel_food_coloring", - "schema_version": 2, - "name": "Purple Gel Food Coloring", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "raisins", "schema_version": 2, @@ -8386,21 +4546,6 @@ ], "density_measurements": [] }, - { - "id": "raspberries", - "schema_version": 2, - "name": "Raspberries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "raspberry", "schema_version": 2, @@ -8425,51 +4570,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "raspberry_liqueur", - "schema_version": 2, - "name": "Raspberry Liqueur", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "raspberry_puree", - "schema_version": 2, - "name": "Raspberry Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "raspberry_vinegar", - "schema_version": 2, - "name": "Raspberry Vinegar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "raw_broccoli", "schema_version": 2, @@ -8490,96 +4590,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "raw_cashews", - "schema_version": 2, - "name": "Raw Cashews", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "raw_pecans", - "schema_version": 2, - "name": "Raw Pecans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "raw_pistachios", - "schema_version": 2, - "name": "Raw Pistachios", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "raw_sliced_almonds", - "schema_version": 2, - "name": "Raw Sliced Almonds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "raw_sunflower_seeds", - "schema_version": 2, - "name": "Raw Sunflower Seeds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "red_cocoa_butter_color", - "schema_version": 2, - "name": "Red Cocoa Butter Color", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "red_curry_paste", "schema_version": 2, @@ -8605,89 +4615,14 @@ "density_measurements": [] }, { - "id": "red_gel_food_coloring", + "id": "red_onion", "schema_version": 2, - "name": "Red Gel Food Coloring", + "name": "red onion", "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", + "categories_json": "[]", "tags_json": "[]", "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "red_wine", - "schema_version": 2, - "name": "Red Wine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "redcurrant_puree", - "schema_version": 2, - "name": "Redcurrant Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "reduced_apple_cider", - "schema_version": 2, - "name": "Reduced Apple Cider", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rhubarb", - "schema_version": 2, - "name": "Rhubarb", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rhubarb_puree", - "schema_version": 2, - "name": "Rhubarb Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", + "source_json": "{\"source_type\":\"ai_import\",\"title\":\"Recipe ingredient import\",\"reviewed\":false}", "deleted_at": null, "aliases": [], "prep_actions": [], @@ -8772,186 +4707,6 @@ ], "density_measurements": [] }, - { - "id": "rice_flour", - "schema_version": 2, - "name": "Rice Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "ricotta_cheese", - "schema_version": 2, - "name": "Ricotta Cheese", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rolled_oats", - "schema_version": 2, - "name": "Rolled Oats", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "roquefort_cheese", - "schema_version": 2, - "name": "Roquefort Cheese", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rosemary", - "schema_version": 2, - "name": "Rosemary", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rosewater_or_orange_blossom_water", - "schema_version": 2, - "name": "Rosewater Or Orange Blossom Water", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "ruby_port", - "schema_version": 2, - "name": "Ruby Port", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rum", - "schema_version": 2, - "name": "Rum", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rum_macerated_raisins", - "schema_version": 2, - "name": "Rum Macerated Raisins", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "rum_or_armagnac", - "schema_version": 2, - "name": "Rum Or Armagnac", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "saffron", - "schema_version": 2, - "name": "Saffron", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "sake", - "schema_version": 2, - "name": "Sake", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "salt", "schema_version": 2, @@ -9004,21 +4759,6 @@ ], "density_measurements": [] }, - { - "id": "salted_peanuts", - "schema_version": 2, - "name": "Salted Peanuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sambal_oelek", "schema_version": 2, @@ -9039,21 +4779,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "seedless_grapes", - "schema_version": 2, - "name": "Seedless Grapes", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "semisweet_chocolate", "schema_version": 2, @@ -9100,21 +4825,6 @@ ], "density_measurements": [] }, - { - "id": "semolina", - "schema_version": 2, - "name": "Semolina", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sesame_oil", "schema_version": 2, @@ -9163,21 +4873,6 @@ ], "density_measurements": [] }, - { - "id": "sesame_seeds", - "schema_version": 2, - "name": "Sesame Seeds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "shaoxing_wine", "schema_version": 2, @@ -9257,111 +4952,6 @@ ], "density_measurements": [] }, - { - "id": "simple_syrup", - "schema_version": 2, - "name": "Simple Syrup", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "sliced_almonds", - "schema_version": 2, - "name": "Sliced Almonds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "slivered_almonds", - "schema_version": 2, - "name": "Slivered Almonds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "smoked_bacon", - "schema_version": 2, - "name": "Smoked Bacon", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "smoked_ham", - "schema_version": 2, - "name": "Smoked Ham", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "smoked_salmon", - "schema_version": 2, - "name": "Smoked Salmon", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "smoked_sea_salt", - "schema_version": 2, - "name": "Smoked Sea Salt", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sodium_citrate", "schema_version": 2, @@ -9377,66 +4967,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "soft_tofu", - "schema_version": 2, - "name": "Soft Tofu", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "sorbet_stabilizer", - "schema_version": 2, - "name": "Sorbet Stabilizer", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "sour_cherries", - "schema_version": 2, - "name": "Sour Cherries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "sour_cherry_puree", - "schema_version": 2, - "name": "Sour Cherry Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sour_cream", "schema_version": 2, @@ -9641,21 +5171,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "sponge", - "schema_version": 2, - "name": "Sponge", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sriracha", "schema_version": 2, @@ -9686,51 +5201,6 @@ ], "density_measurements": [] }, - { - "id": "star_anise", - "schema_version": 2, - "name": "Star Anise", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "strawberries", - "schema_version": 2, - "name": "Strawberries", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "strawberry_puree", - "schema_version": 2, - "name": "Strawberry Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sugar", "schema_version": 2, @@ -9770,27 +5240,12 @@ ], "density_measurements": [] }, - { - "id": "superfine_sugar", - "schema_version": 2, - "name": "Superfine Sugar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "sweet_corn", "schema_version": 2, "name": "Sweet Corn", "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", + "categories_json": "[\"pantry\",\"baking\"]", "tags_json": "[]", "description": null, "source_json": "{}", @@ -9830,21 +5285,6 @@ ], "density_measurements": [] }, - { - "id": "sweet_potato_puree", - "schema_version": 2, - "name": "Sweet Potato Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "tahini", "schema_version": 2, @@ -9875,36 +5315,6 @@ ], "density_measurements": [] }, - { - "id": "tapioca_flour", - "schema_version": 2, - "name": "Tapioca Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "tapioca_pearls", - "schema_version": 2, - "name": "Tapioca Pearls", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "tapioca_starch", "schema_version": 2, @@ -9920,51 +5330,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "tea_loose", - "schema_version": 2, - "name": "Loose Tea", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "tea_streusel", - "schema_version": 2, - "name": "Tea Streusel", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "tequila", - "schema_version": 2, - "name": "Tequila", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "test_matcha_powder", "schema_version": 2, @@ -11949,6 +7314,68 @@ } ] }, + { + "id": "test_matcha_powder_68", + "schema_version": 2, + "name": "Test Matcha Powder Organic", + "status": "active", + "categories_json": "[\"tea\",\"flavoring\",\"organic\"]", + "tags_json": "[]", + "description": null, + "source_json": "{}", + "deleted_at": "2026-08-18 23:25:38", + "aliases": [ + { + "name": "Matcha", + "kind": "search" + } + ], + "prep_actions": [], + "measure_conversions": [], + "density_measurements": [ + { + "id": "density_test_matcha_powder_68", + "mass_quantity": 60, + "mass_unit_id": "gram", + "volume_quantity": 0.25, + "volume_unit_id": "cup_us", + "temperature_c": null, + "state": null, + "source_json": "{}" + } + ] + }, + { + "id": "test_matcha_powder_69", + "schema_version": 2, + "name": "Test Matcha Powder Organic", + "status": "active", + "categories_json": "[\"tea\",\"flavoring\",\"organic\"]", + "tags_json": "[]", + "description": null, + "source_json": "{}", + "deleted_at": "2026-08-18 23:27:49", + "aliases": [ + { + "name": "Matcha", + "kind": "search" + } + ], + "prep_actions": [], + "measure_conversions": [], + "density_measurements": [ + { + "id": "density_test_matcha_powder_69", + "mass_quantity": 60, + "mass_unit_id": "gram", + "volume_quantity": 0.25, + "volume_unit_id": "cup_us", + "temperature_c": null, + "state": null, + "source_json": "{}" + } + ] + }, { "id": "test_matcha_powder_7", "schema_version": 2, @@ -11980,6 +7407,99 @@ } ] }, + { + "id": "test_matcha_powder_70", + "schema_version": 2, + "name": "Test Matcha Powder Organic", + "status": "active", + "categories_json": "[\"tea\",\"flavoring\",\"organic\"]", + "tags_json": "[]", + "description": null, + "source_json": "{}", + "deleted_at": "2026-08-18 23:28:56", + "aliases": [ + { + "name": "Matcha", + "kind": "search" + } + ], + "prep_actions": [], + "measure_conversions": [], + "density_measurements": [ + { + "id": "density_test_matcha_powder_70", + "mass_quantity": 60, + "mass_unit_id": "gram", + "volume_quantity": 0.25, + "volume_unit_id": "cup_us", + "temperature_c": null, + "state": null, + "source_json": "{}" + } + ] + }, + { + "id": "test_matcha_powder_71", + "schema_version": 2, + "name": "Test Matcha Powder Organic", + "status": "active", + "categories_json": "[\"tea\",\"flavoring\",\"organic\"]", + "tags_json": "[]", + "description": null, + "source_json": "{}", + "deleted_at": "2026-08-19 14:49:42", + "aliases": [ + { + "name": "Matcha", + "kind": "search" + } + ], + "prep_actions": [], + "measure_conversions": [], + "density_measurements": [ + { + "id": "density_test_matcha_powder_71", + "mass_quantity": 60, + "mass_unit_id": "gram", + "volume_quantity": 0.25, + "volume_unit_id": "cup_us", + "temperature_c": null, + "state": null, + "source_json": "{}" + } + ] + }, + { + "id": "test_matcha_powder_72", + "schema_version": 2, + "name": "Test Matcha Powder Organic", + "status": "active", + "categories_json": "[\"tea\",\"flavoring\",\"organic\"]", + "tags_json": "[]", + "description": null, + "source_json": "{}", + "deleted_at": "2026-08-20 18:04:44", + "aliases": [ + { + "name": "Matcha", + "kind": "search" + } + ], + "prep_actions": [], + "measure_conversions": [], + "density_measurements": [ + { + "id": "density_test_matcha_powder_72", + "mass_quantity": 60, + "mass_unit_id": "gram", + "volume_quantity": 0.25, + "volume_unit_id": "cup_us", + "temperature_c": null, + "state": null, + "source_json": "{}" + } + ] + }, { "id": "test_matcha_powder_8", "schema_version": 2, @@ -12105,21 +7625,6 @@ ], "density_measurements": [] }, - { - "id": "tomato_juice", - "schema_version": 2, - "name": "Tomato Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "tomato_paste", "schema_version": 2, @@ -12160,261 +7665,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "total_croquant_weight", - "schema_version": 2, - "name": "Total Croquant Weight:", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "total_dough_weight", - "schema_version": 2, - "name": "Total Dough Weight:", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "total_parfait_weight", - "schema_version": 2, - "name": "Total Parfait Weight:", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "total_paton_weight", - "schema_version": 2, - "name": "Total Paton Weight:", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "unsalted_peanuts", - "schema_version": 2, - "name": "Unsalted Peanuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "unsweetened_chocolate", - "schema_version": 2, - "name": "Unsweetened Chocolate", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "unsweetened_coconut", - "schema_version": 2, - "name": "Unsweetened Coconut", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_az_lia", - "schema_version": 2, - "name": "Valrhona Azélia", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_dark_chocolate_baking_pearls", - "schema_version": 2, - "name": "Valrhona Dark Chocolate Baking Pearls", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_extra_bitter_chocolate", - "schema_version": 2, - "name": "Valrhona Extra Bitter Chocolate", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_guanaja", - "schema_version": 2, - "name": "Valrhona Guanaja", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_hazelnut_pralin", - "schema_version": 2, - "name": "Valrhona Hazelnut Praliné", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_ilanka", - "schema_version": 2, - "name": "Valrhona Ilanka", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_manjari", - "schema_version": 2, - "name": "Valrhona Manjari", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "valrhona_tanariva", - "schema_version": 2, - "name": "Valrhona Tanariva", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "vanilla_bean", - "schema_version": 2, - "name": "Vanilla Bean", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "vanilla_cake_batter", - "schema_version": 2, - "name": "Vanilla Cake Batter", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "vanilla_extract", "schema_version": 2, @@ -12458,21 +7708,6 @@ ], "density_measurements": [] }, - { - "id": "vanilla_sugar", - "schema_version": 2, - "name": "Vanilla Sugar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "vegetables_mixed", "schema_version": 2, @@ -12498,7 +7733,7 @@ "schema_version": 2, "name": "Vinegar", "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", + "categories_json": "[\"pantry\",\"baking\"]", "tags_json": "[]", "description": null, "source_json": "{}", @@ -12726,21 +7961,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "walnuts_or_pecans", - "schema_version": 2, - "name": "Walnuts Or Pecans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "water", "schema_version": 2, @@ -12806,36 +8026,6 @@ ], "density_measurements": [] }, - { - "id": "watermelon_puree", - "schema_version": 2, - "name": "Watermelon Puree", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "wheat_germ", - "schema_version": 2, - "name": "Wheat Germ", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "wheat_gluten_70_80", "schema_version": 2, @@ -12895,51 +8085,6 @@ ], "density_measurements": [] }, - { - "id": "white_chocolate_chips", - "schema_version": 2, - "name": "White Chocolate Chips", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "white_chocolate_p_te_glacer", - "schema_version": 2, - "name": "White Chocolate Pâte À Glacer", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "white_dessert_wine", - "schema_version": 2, - "name": "White Dessert Wine", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "white_pepper", "schema_version": 2, @@ -12979,201 +8124,6 @@ ], "density_measurements": [] }, - { - "id": "white_port", - "schema_version": 2, - "name": "White Port", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "white_rice_flour", - "schema_version": 2, - "name": "White Rice Flour", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "white_vinegar", - "schema_version": 2, - "name": "White Vinegar", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_allspice", - "schema_version": 2, - "name": "Whole Allspice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_almonds", - "schema_version": 2, - "name": "Whole Almonds", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_cloves", - "schema_version": 2, - "name": "Whole Cloves", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_fat_yogurt", - "schema_version": 2, - "name": "Whole Fat Yogurt", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_nutmeg", - "schema_version": 2, - "name": "Whole Nutmeg", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_nuts", - "schema_version": 2, - "name": "Whole Nuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_oranges", - "schema_version": 2, - "name": "Whole Oranges", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_pecans", - "schema_version": 2, - "name": "Whole Pecans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "whole_walnuts", - "schema_version": 2, - "name": "Whole Walnuts", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "worcestershire_sauce", - "schema_version": 2, - "name": "Worcestershire Sauce", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "worschestershire_sauce", "schema_version": 2, @@ -13228,36 +8178,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "yeast_fresh", - "schema_version": 2, - "name": "Fresh Yeast", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "yield_two_9_inch_loaf_pans", - "schema_version": 2, - "name": "Yield: Two 9-Inch Loaf Pans", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "yogurt", "schema_version": 2, @@ -13282,21 +8202,6 @@ "measure_conversions": [], "density_measurements": [] }, - { - "id": "yuzu_juice", - "schema_version": 2, - "name": "Yuzu Juice", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, { "id": "zaatar", "schema_version": 2, @@ -13316,58 +8221,28 @@ "prep_actions": [], "measure_conversions": [], "density_measurements": [] - }, - { - "id": "zest", - "schema_version": 2, - "name": "Zest", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] - }, - { - "id": "zucchini", - "schema_version": 2, - "name": "Zucchini", - "status": "active", - "categories_json": "[\"pantry\",\"baking\",\"imported_stub\"]", - "tags_json": "[]", - "description": null, - "source_json": "{}", - "deleted_at": null, - "aliases": [], - "prep_actions": [], - "measure_conversions": [], - "density_measurements": [] } ], "recipes": [ { "id": "0_recipe_test", "schema_version": 2, - "save_version": 14, - "title": "0: Frozen Chicken Beans Rice Cheese", + "save_version": 21, + "title": "Chipotle Bowl", "summary": null, "categories_json": "[]", "tags_json": "[]", - "yield_quantity": 1005, + "yield_quantity": 791, "yield_unit_id": "gram", "yield_servings": null, - "yield_basis": null, + "yield_basis": "theoretical", "scaling_mode": "amount", "scaling_basis_id": null, "scaling_basis_quantity": null, "scaling_basis_unit_id": null, "notes_json": "[]", - "source_json": "{\"schema_version\":2,\"id\":\"0_recipe_test\",\"title\":\"0-recipe-test\",\"categories\":[],\"tags\":[],\"yield\":{\"amount\":{\"quantity\":1000,\"unit_id\":\"gram\"}},\"scaling\":{\"mode\":\"amount\"},\"components\":[{\"id\":\"component_74d895d5\",\"name\":\"main\",\"items\":[{\"id\":\"line_7ea18d07\",\"reference\":{\"ingredient_id\":\"basil\"},\"amount\":{\"quantity\":300,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true}]}],\"steps\":[{\"id\":\"step_1\",\"order\":1,\"instruction\":\"place it into the dog shed\"},{\"id\":\"step_3ef49eca\",\"order\":2,\"instruction\":\"assemble the lego set\"},{\"id\":\"step_4cd4eb90\",\"order\":3,\"instruction\":\"become sad\"}]}", - "auto_yield": 0, + "source_json": "{\"schema_version\":2,\"id\":\"0_recipe_test\",\"title\":\"0-recipe-test\",\"categories\":[],\"tags\":[],\"yield\":{\"amount\":{\"quantity\":1000,\"unit_id\":\"gram\"}},\"scaling\":{\"mode\":\"amount\"},\"components\":[{\"id\":\"component_74d895d5\",\"name\":\"main\",\"items\":[{\"id\":\"line_7ea18d07\",\"reference\":{\"ingredient_id\":\"basil\"},\"amount\":{\"quantity\":300,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true}]}],\"steps\":[{\"id\":\"step_1\",\"order\":1,\"instruction\":\"place it into the dog shed\"},{\"id\":\"step_3ef49eca\",\"order\":2,\"instruction\":\"assemble the lego set\"},{\"id\":\"step_4cd4eb90\",\"order\":3,\"instruction\":\"become sad\"}],\"auto_yield_original\":{\"quantity\":1,\"unit_id\":\"gram\",\"basis\":null}}", + "auto_yield": 1, "station": null, "deleted_at": null, "cover_media_url": null, @@ -13383,13 +8258,13 @@ "items": [ { "component_id": "component_74d895d5", - "id": "line_cfdc1fbe", + "id": "line_28913a8c", "position": 1, - "ingredient_id": "chicken_breast", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "pound", - "percentage": 84.37477823578486, + "ingredient_id": null, + "subrecipe_id": "chipotle_pinto_beans", + "quantity": 160, + "unit_id": "gram", + "percentage": 20.2275600505689, "basis_member": 0, "optional": 0, "notes": null, @@ -13398,13 +8273,13 @@ }, { "component_id": "component_74d895d5", - "id": "line_79064997", + "id": "line_2b16648d", "position": 2, - "ingredient_id": "rice", - "subrecipe_id": null, - "quantity": 320, + "ingredient_id": null, + "subrecipe_id": "cilantro_lime_rice", + "quantity": 160, "unit_id": "gram", - "percentage": 11.904930867973441, + "percentage": 20.2275600505689, "basis_member": 0, "optional": 0, "notes": null, @@ -13413,13 +8288,13 @@ }, { "component_id": "component_74d895d5", - "id": "line_4649d3de", + "id": "line_186ec837", "position": 3, - "ingredient_id": "pinto_beans_dry_uncooked", - "subrecipe_id": null, - "quantity": 100, + "ingredient_id": null, + "subrecipe_id": "chipotle_adobo_chicken_breast", + "quantity": 160, "unit_id": "gram", - "percentage": 3.7202908962417007, + "percentage": 20.2275600505689, "basis_member": 0, "optional": 0, "notes": null, @@ -13428,13 +8303,13 @@ }, { "component_id": "component_74d895d5", - "id": "line_31cca402", + "id": "line_71260474", "position": 4, - "ingredient_id": "mozzarella_cheese", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, + "ingredient_id": null, + "subrecipe_id": "chipotle_roasted_chili_corn_salsa", + "quantity": 160, + "unit_id": "gram", + "percentage": 20.2275600505689, "basis_member": 0, "optional": 0, "notes": null, @@ -13443,13 +8318,43 @@ }, { "component_id": "component_74d895d5", - "id": "line_3d8f21ed", + "id": "line_57ce21d3", "position": 5, - "ingredient_id": "salt", + "ingredient_id": "sour_cream", "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, + "quantity": 75, + "unit_id": "gram", + "percentage": 9.481668773704172, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_74d895d5", + "id": "line_28d5d649", + "position": 6, + "ingredient_id": "cheddar_cheese", + "subrecipe_id": null, + "quantity": 38, + "unit_id": "gram", + "percentage": 4.804045512010114, + "basis_member": 0, + "optional": 0, + "notes": "shredded", + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_74d895d5", + "id": "line_a01bccb2", + "position": 7, + "ingredient_id": null, + "subrecipe_id": "guacamole", + "quantity": 38, + "unit_id": "gram", + "percentage": 4.804045512010114, "basis_member": 0, "optional": 0, "notes": null, @@ -13461,21 +8366,7 @@ { "id": "step_1", "position": 1, - "instruction": "place it into the dog shed", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3ef49eca", - "position": 2, - "instruction": "assemble the lego set", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4cd4eb90", - "position": 3, - "instruction": "become sad", + "instruction": "Add", "critical_control_point": 0, "equipment_ids": [] } @@ -13503,7 +8394,7 @@ "source_json": "{\"schema_version\":2,\"id\":\"0_recipe_test\",\"title\":\"0-recipe-test\",\"categories\":[],\"tags\":[],\"yield\":{\"amount\":{\"quantity\":1000,\"unit_id\":\"gram\"}},\"scaling\":{\"mode\":\"amount\"},\"components\":[{\"id\":\"component_74d895d5\",\"name\":\"main\",\"items\":[{\"id\":\"line_7ea18d07\",\"reference\":{\"ingredient_id\":\"basil\"},\"amount\":{\"quantity\":300,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true}]}],\"steps\":[{\"id\":\"step_1\",\"order\":1,\"instruction\":\"place it into the dog shed\"},{\"id\":\"step_3ef49eca\",\"order\":2,\"instruction\":\"assemble the lego set\"},{\"id\":\"step_4cd4eb90\",\"order\":3,\"instruction\":\"become sad\"}]}", "auto_yield": 0, "station": null, - "deleted_at": null, + "deleted_at": "2026-08-20 18:13:11", "cover_media_url": null, "equipment_ids": [], "components": [ @@ -13714,1931 +8605,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "all_butter_pie_dough", - "schema_version": 2, - "save_version": 6, - "title": "All-Butter Pie Dough", - "summary": "Yield: one 9-inch double crust deep-dish pie", - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 900, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch double crust deep-dish pie\",\"To inhibit gluten development, keep all ingredients and mixing bowl as cold as possible.\",\"The exact amount of hydration needed can vary depending upon the humidity in the air and the type of flour used.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 425, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.41, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": 6.59, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 338, - "unit_id": "gram", - "percentage": 79.53, - "basis_member": 0, - "optional": 0, - "notes": "¾-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 21.18, - "basis_member": 0, - "optional": 0, - "notes": "ice cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_white_vinegar", - "position": 6, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.53, - "basis_member": 0, - "optional": 0, - "notes": "white or cider", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the flour, salt, sugar, and butter until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the ice water and vinegar and add ½ the liquid to the dry ingredients and mix for 10 seconds on low speed to hydrate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the remaining liquid and mix until the dough is shaggy but holds together when pressed between two fingers.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Turn the dough out onto a lightly floured work surface. Gently shape into desired sized rounds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Almond Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1655, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 650, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_amaretto", - "position": 4, - "ingredient_id": "amaretto", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_almond_extract", - "position": 5, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_milk_whole", - "position": 6, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_heavy_cream", - "position": 7, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_almond_paste", - "position": 8, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 95, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_yolk", - "position": 11, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks, add the amaretto and extract; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, combine the milk, cream, ½ of the sugar, and almond paste. Bring the mixture to a scald, whisking to dissolve the almond paste. Meanwhile, whisk the egg yolks, the other ½ of the sugar, and salt until light. Temper about ⅓ of the almond milk mixture into the yolk mixture. Return everything back to the saucepan and cook on medium-low heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin, and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled almond crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_cream_with_almond_flour", - "schema_version": 2, - "save_version": 6, - "title": "Almond Cream with Almond Flour", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1872, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_almond_flour", - "position": 3, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the butter, sugar, flour, and salt until light, fluffy and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs slowly, thoroughly incorporating each egg before adding the next, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the extract.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_cream_with_almond_paste", - "schema_version": 2, - "save_version": 6, - "title": "Almond Cream with Almond Paste", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1870, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_almond_paste", - "position": 2, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cornstarch", - "position": 4, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the butter and almond paste until light, fluffy, and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs slowly, thoroughly incorporating each egg before adding the next, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the cornstarch and salt, followed by the extract.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_financier", - "schema_version": 2, - "save_version": 6, - "title": "Almond Financier", - "summary": null, - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1070, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": 216.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": 216.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_almond_flour", - "position": 4, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 83.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.04, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": 216.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 8.33, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_honey", - "position": 8, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make beurre noisette with the butter. Strain through a fine-mesh strainer and set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Blend the sugar, flours and salt in a bowl In a mixer fitted with a paddle attachment; then mix until well combined.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the egg whites and extract. Add to the dry ingredients gradually and mix until just combined; do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the honey and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the beurre noisette in 3 additions and mix until incorporated.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chill until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177ºC) until the cake springs back to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_milk_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Almond Milk Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 860, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "almond_milk", - "position": 1, - "name": "Almond Milk", - "notes_json": "[]" - }, - { - "id": "almond_milk_mousse", - "position": 2, - "name": "Almond Milk Mousse", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "almond_milk", - "id": "line_01_almond", - "position": 1, - "ingredient_id": "almond", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_06_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 13, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_07_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_08_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_09_amaretto", - "position": 4, - "ingredient_id": "amaretto", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_10_almond_milk", - "position": 5, - "ingredient_id": "almond_milk", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_11_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "almond_milk_mousse", - "id": "line_12_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Almond Milk:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Toast the almonds. Allow to cool, then pulse in a food processor until finely ground.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the water, milk, sugar, salt, and ground almonds to a boil. Set aside to steep until cool, then refrigerate overnight.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the mixture through a fine-mesh strainer, pressing against the almonds to extract as much almond milk as possible.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Almond Milk Mousse:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Warm the almond milk to 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Melt the bloomed and drained gelatin with the amaretto and whisk into the warmed almond milk. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Make a Swiss meringue with the egg whites and sugar; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Fold the cooled milk/gelatin mixture into the meringue, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_pate_sable", - "schema_version": 2, - "save_version": 6, - "title": "Almond Pâte Sablé", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1208, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This dough is good for tarts as well as cookies.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 70, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 188, - "unit_id": "gram", - "percentage": 37.6, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_almond_flour", - "position": 3, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 63, - "unit_id": "gram", - "percentage": 12.6, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_almond_extract", - "position": 6, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, almond flour, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the cake flour and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_pate_sucree", - "schema_version": 2, - "save_version": 6, - "title": "Almond Pâte Sucrée", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1057, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 51.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 38.3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.06, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_almond_flour", - "position": 4, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 12.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 21.28, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_almond_extract", - "position": 6, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.53, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 470, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the almond flour to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the cake flour, being careful not to over mix the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "almond_toffee", - "schema_version": 2, - "save_version": 6, - "title": "Almond Toffee", - "summary": "Yield: One full size silicone baking mat", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1342.5, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: One full size silicone baking mat\",\"The temperature in this recipe is meant to be a guideline only. You can cook the toffee more or less to taste just like any caramel.\",\"Be careful to avoid scraping the bottom of the pan while cooking, as to prevent incorporating any burnt pieces when adding the nuts to the toffee.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 680, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_light_corn_syrup", - "position": 3, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sliced_almonds", - "position": 5, - "ingredient_id": "sliced_almonds", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, melt the butter over medium heat; whisk in the sugar to emulsify. Bring to a boil, then add the corn syrup.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Cook the mixture to 293°F (145°C), or until deep amber in color.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the vanilla bean seeds, toasted almonds, and salt. Mix quickly just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Immediately pour the toffee onto a silicone baking mat and spread evenly to ¼-inch thick with an oiled spatula.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "american_buttercream", - "schema_version": 2, - "save_version": 6, - "title": "American Buttercream", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2700, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"American buttercream frostings are sweet, but its neutral flavor pairs well with almost any cake.\",\"Food coloring can be added as desired.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_confectioners_sugar", - "position": 3, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 1725, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sifted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_extract", - "position": 4, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "optional", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add ½ of the powdered sugar and the extract and mix well.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the remaining sugar and mix for several minutes until the desired consistency is reached.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Adjust the consistency with the cream if necessary.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Flavor as desired.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use the buttercream immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "amorosos_roll", "schema_version": 2, @@ -15789,2327 +8755,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "anisette_biscotti", - "schema_version": 2, - "save_version": 6, - "title": "Anisette Biscotti", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2016, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"600 g (21.2 oz) logs will yield approximately 3½-inch sized biscotti.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 704, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 575, - "unit_id": "gram", - "percentage": 81.68, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sliced_almonds", - "position": 3, - "ingredient_id": "sliced_almonds", - "subrecipe_id": null, - "quantity": 157, - "unit_id": "gram", - "percentage": 22.3, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cornmeal", - "position": 4, - "ingredient_id": "cornmeal", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 5.68, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_anise_seeds", - "position": 5, - "ingredient_id": "anise_seeds", - "subrecipe_id": null, - "quantity": 23, - "unit_id": "gram", - "percentage": 3.27, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_powder", - "position": 6, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.13, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.71, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 32.24, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 28.41, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_anisette_liqueur", - "position": 10, - "ingredient_id": "anisette_liqueur", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 9.94, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the dry ingredients with the softened butter until the butter is well incorporated.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs and anisette and mix until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Roll the dough into desired sized logs and refrigerate or freeze.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Brush the logs with egg whites and sprinkle with granulated sugar before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325°F (163°C) until evenly browned and firm to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Slice the biscotti into desired sized slices and place on sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake a second time at 225°F (107°C) until dry.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_blondies", - "schema_version": 2, - "save_version": 6, - "title": "Apple Blondies", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2340, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_brown_sugar", - "position": 1, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 95.95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_invert_sugar", - "position": 2, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10.66, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_apple_compote_puree", - "position": 3, - "ingredient_id": "apple_compote_puree", - "subrecipe_id": null, - "quantity": 313, - "unit_id": "gram", - "percentage": 66.74, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 53.3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_apple_brandy", - "position": 5, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.49, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.53, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lemon_zest", - "position": 7, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.53, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 284, - "unit_id": "gram", - "percentage": 60.55, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_flour_cake", - "position": 9, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 469, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_powder", - "position": 10, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 5.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.13, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cinnamon", - "position": 12, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 0.85, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_nutmeg", - "position": 13, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.27, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_apples", - "position": 14, - "ingredient_id": "apples", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": 0.85, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_walnut", - "position": 15, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 15.99, - "basis_member": 0, - "optional": 0, - "notes": "coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the sugars, puree, eggs, brandy, extract, and zest until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually whisk in the warm butter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold in the diced apples until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Spread evenly onto a half sheet pan and sprinkle the walnuts on top of the batter.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean, or with a few crumbs.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_cider_doughnuts", - "schema_version": 2, - "save_version": 6, - "title": "Apple Cider Doughnuts", - "summary": "Yield: thirty-two 50 g (1.8 oz) doughnuts", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1960, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: thirty-two 50 g (1.8 oz) doughnuts\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - }, - { - "id": "glaze", - "position": 2, - "name": "Glaze", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "glaze", - "id": "line_13_confectioners_sugar", - "position": 1, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 27.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "glaze", - "id": "line_14_cinnamon", - "position": 2, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.15, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "glaze", - "id": "line_15_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": 0.07, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "glaze", - "id": "line_16_apple_cider", - "position": 4, - "ingredient_id": "apple_cider", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 5.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "glaze", - "id": "line_17_apple_brandy", - "position": 5, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_01_apple_cider", - "position": 1, - "ingredient_id": "apple_cider", - "subrecipe_id": null, - "quantity": 475, - "unit_id": "gram", - "percentage": 55.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 850, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 2.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_soda", - "position": 4, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 9, - "unit_id": "gram", - "percentage": 1.06, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.59, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cinnamon", - "position": 6, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.59, - "basis_member": 0, - "optional": 0, - "notes": "ground (1 tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_nutmeg", - "position": 7, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.15, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 13.29, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 47.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_whole", - "position": 10, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 23.53, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_apple_cider_reduction", - "position": 11, - "ingredient_id": "apple_cider_reduction", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 14.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_buttermilk", - "position": 12, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 26.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Doughnut:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gently reduce the apple cider by 75% to 120 g (4.2 oz). Set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar until smooth and aerated.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Gradually add the reduced apple cider and the buttermilk, mixing until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Add the dry ingredients and mix just until the dough comes together.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Dust a parchment-lined sheet pan with flour and turn the dough out onto the pan. Flour the top of the dough and pat it down until it is ½-inch thick. Use more flour if the dough is sticky.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Transfer the dough to the freezer until firm (about 30 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Cut into the doughnuts using a doughnut cutter or use two sizes of round cutters to create the hole.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Refrigerate for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Add enough oil to a deep-sided pan to measure the depth of about 3-inches. Over medium heat, bring the temperature of the oil to 360°F (182°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Carefully add a few doughnuts to the oil, being careful not to crowd the pan. Fry until golden brown. Turn the doughnuts over and fry until the other side is golden. Drain on paper towels.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_14", - "position": 14, - "instruction": "Glaze:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_15", - "position": 15, - "instruction": "Sift the powdered sugar, cinnamon, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_16", - "position": 16, - "instruction": "Whisk the cider and brandy into the powdered sugar mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_17", - "position": 17, - "instruction": "The old fashioned way of glazing doughnuts is to dip them by hand. The trick is to have the glaze thick enough to coat the doughnut in one application. If either the glaze or the doughnuts are too warm, the glaze will run off.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_cider_sabayon", - "schema_version": 2, - "save_version": 6, - "title": "Apple Cider Sabayon", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 690, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_apple_cider", - "position": 4, - "ingredient_id": "apple_cider", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_apple_brandy", - "position": 5, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks and set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks, sugar, cider, and brandy over a water bath until thickened and a ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the whipped cream into the sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_cider_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Apple Cider Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1150, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_apple_cider", - "position": 1, - "ingredient_id": "apple_cider", - "subrecipe_id": null, - "quantity": 1500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_vanilla_bean", - "position": 2, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cinnamon_sticks", - "position": 3, - "ingredient_id": "cinnamon_sticks", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_reduced_apple_cider", - "position": 4, - "ingredient_id": "reduced_apple_cider", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_apple_brandy", - "position": 6, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_xanthan_gum", - "position": 7, - "ingredient_id": "xanthan_gum", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, reduce the cider, vanilla bean, and cinnamon sticks by ⅓ .", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the reduced apple cider and sugar to a boil to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain and chill until cold.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Place the cider mixture and brandy in a blender. With the blender on low speed, sprinkle in the xanthan gum then blend on high speed for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove the bubbles in the sauce using a vacuum packaging machine.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Apple Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2070, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_baking_soda", - "position": 2, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cinnamon", - "position": 3, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_canola_oil", - "position": 7, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 42.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_orange_juice", - "position": 8, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 15, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_vanilla_extract", - "position": 9, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 67.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_honey", - "position": 11, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 7.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_lemon_zest", - "position": 12, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_apples", - "position": 13, - "ingredient_id": "apples", - "subrecipe_id": null, - "quantity": 650, - "unit_id": "gram", - "percentage": 162.5, - "basis_member": 0, - "optional": 0, - "notes": "peeled & ¼-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_raisins", - "position": 14, - "ingredient_id": "raisins", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 37.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_walnut", - "position": 15, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 37.5, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the wet ingredients until smooth and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the sugar, honey, zest, apples, raisins, and walnuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the wet ingredients to the apple mixture and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the sifted dry ingredients into the apple mixture until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_paper_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Apple Paper Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 905, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_apple_puree", - "position": 1, - "ingredient_id": "apple_puree", - "subrecipe_id": null, - "quantity": 520, - "unit_id": "gram", - "percentage": 406.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 64, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_apple_brandy", - "position": 3, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 64, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 128, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_confectioners_sugar", - "position": 5, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 128, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_citric_acid", - "position": 6, - "ingredient_id": "citric_acid", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": 0.47, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine all of the ingredients over a water bath and blend using an immersion blender until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Using a template, spread very thinly on a silicone baking mat lightly sprayed with pan spray.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 275°F (135°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Apple Pie Filling", - "summary": "Yield: one 9-inch pie. SS", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1095, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch pie\",\"For best results, use a blend of apples with contrasting flavor profiles and degrees of acidity.\",\"The apples should be sliced thin so they can lie close together. Thick slices have more air space between them. As they bake, the air space disappears and the apples sink lower in the pan leaving a gap between them and the top crust.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_apples", - "position": 1, - "ingredient_id": "apples", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "thinly sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_juice", - "position": 4, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_zest", - "position": 5, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_nutmeg", - "position": 8, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_butter", - "position": 10, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_apple_brandy", - "position": 11, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cornstarch", - "position": 12, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a large bowl, mix together the apples, sugars, juice, zest, spices, and salt. Allow the apples to macerate at room temperature for 1-3 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the apples, reserving the liquid.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a small saucepan, reduce the liquid, butter, and brandy until syrupy.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Toss the apples with the cornstarch, followed by the reduced liquid.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fill a 9-inch pie crust with the apple pie filling.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover with the top crust and seal the edges. Cut several slits in the top crust.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Lightly cover the pie with plastic wrap and refrigerate for 30-60 minutes before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 375°F (191°C) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apple_strudel_filling", - "schema_version": 2, - "save_version": 6, - "title": "Apple Strudel Filling", - "summary": "Yield: two 20 to 24-inch strudels", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1912.75, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 20 to 24-inch strudels\",\"For best results, use a blend of apples with contrasting flavor profiles and degrees of acidity.\",\"If you mix the filling in advance, the sugar will cause the apples to leach liquid, which will make it messier to roll up the strudels.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "bread_crumb_mixture", - "position": 1, - "name": "Bread Crumb Mixture", - "notes_json": "[]" - }, - { - "id": "apple_filling", - "position": 2, - "name": "Apple Filling", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "apple_filling", - "id": "line_03_apples", - "position": 1, - "ingredient_id": "apples", - "subrecipe_id": null, - "quantity": 1375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "thinly sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_04_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_05_golden_raisins", - "position": 3, - "ingredient_id": "golden_raisins", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_06_dark_rum", - "position": 4, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_07_lemon_zest", - "position": 5, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_08_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_09_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_10_vanilla_bean", - "position": 8, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "apple_filling", - "id": "line_11_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "bread_crumb_mixture", - "id": "line_01_bread_crumbs", - "position": 1, - "ingredient_id": "bread_crumbs", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "bread_crumb_mixture", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bread Crumb:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sauté the bread crumbs in butter until lightly toasted and set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Apple Filling:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Combine all of the ingredients just before assembly.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "apricot_glaze", "schema_version": 2, @@ -18253,1029 +8898,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "apricot_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Apricot Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2177, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 27, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_apricot_puree", - "position": 4, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "apricot_passion_fruit_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Apricot- Passion Fruit Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1720, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lime_zest", - "position": 4, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cr_me_fra_che", - "position": 5, - "ingredient_id": "cr_me_fra_che", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_heavy_cream", - "position": 6, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_apricot_puree", - "position": 7, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_passion_fruit_puree", - "position": 8, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_vanilla_bean", - "position": 9, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_yolk", - "position": 11, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_sugar", - "position": 12, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream and zest to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the crème fraîche, cream, purees, vanilla bean, and first weight of sugar to a boil. Meanwhile, whisk the egg yolks and the second weight of sugar until light and thick. Temper about ⅓ of the fruit mixture into the yolk mixture. Return everything back to the saucepan and cook on medium-low heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin, and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled apricot-passion fruit crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "arborio_rice_pudding", - "schema_version": 2, - "save_version": 6, - "title": "Arborio Rice Pudding", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The amount of milk left unabsorbed after the rice is cooked tender will dictate the final consistency of the rice pudding.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_arborio_rice", - "position": 1, - "ingredient_id": "arborio_rice", - "subrecipe_id": null, - "quantity": 235, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 1920, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cinnamon_stick", - "position": 4, - "ingredient_id": "cinnamon_stick", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_orange_zest", - "position": 6, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_heavy_cream", - "position": 7, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_rum_macerated_raisins", - "position": 8, - "ingredient_id": "rum_macerated_raisins", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Blanch the rice in lightly salted water and drain well.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the rice, milk, sugar, cinnamon, and vanilla bean to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Lower to a simmer, stirring regularly until the rice is tender and most (but not all) of the milk is absorbed. Stir in the zest.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill the rice pudding over an ice bath, then remove the cinnamon stick and vanilla bean.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whip the cream to soft peaks and fold into the cooled rice pudding to lighten, followed by the drained rum macerated raisins.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "armagnac_prune_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Armagnac-Prune Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The prune puree can be refrigerated for up to 1 month.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "ice_cream_base", - "position": 1, - "name": "Ice Cream Base", - "notes_json": "[]" - }, - { - "id": "prune_puree", - "position": 2, - "name": "Prune Puree", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "ice_cream_base", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 595, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 81, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_04_powdered_glucose", - "position": 4, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 189, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_07_armagnac", - "position": 7, - "ingredient_id": "armagnac", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "ice_cream_base", - "id": "line_08_prune_puree", - "position": 8, - "ingredient_id": "prune_puree", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "prune_puree", - "id": "line_09_prunes", - "position": 1, - "ingredient_id": "prunes", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "prune_puree", - "id": "line_10_burgundy", - "position": 2, - "ingredient_id": "burgundy", - "subrecipe_id": null, - "quantity": 667, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "prune_puree", - "id": "line_11_maderia", - "position": 3, - "ingredient_id": "maderia", - "subrecipe_id": null, - "quantity": 333, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "prune_puree", - "id": "line_12_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 333, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "prune_puree", - "id": "line_13_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "prune_puree", - "id": "line_14_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Ice Cream:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk power and glucose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat until warm, 105°F (40°C); whisk in the sugar and egg yolks that have been previously whisked together until light.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Whisk together the armagnac and puree previously chilled in the refrigerator and pour into the the ice cream machine at the beginning of the spinning process.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "whisk" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Prune Puree:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "In a saucepan, combine all of the ingredients and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Lower to a simmer and reduce until the prunes are very soft.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Puree the cooked prunes in a food processor to the desired level of smoothness.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Store in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "auntie_annes_pretzels", "schema_version": 2, @@ -19483,236 +9105,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "bacon_maple_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Bacon-Maple Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1350, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_smoked_bacon", - "position": 1, - "ingredient_id": "smoked_bacon", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_smoked_sea_salt", - "position": 4, - "ingredient_id": "smoked_sea_salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_black_pepper", - "position": 5, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (⅛ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pure_maple_syrup", - "position": 6, - "ingredient_id": "pure_maple_syrup", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_milk", - "position": 7, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cocoa_butter", - "position": 8, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_honey", - "position": 9, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Cut the bacon into lardons and render in a saucepan over medium-low heat.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the cream and milk into the rendered bacon and fat in several additions and bring to a rapid boil. Set aside to infuse for one hour. Season with the salt and pepper.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a deep saucepan, bring the maple syrup to a boil and cook to 250°F (121°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stream the bacon-infused cream mixture into the cooked maple syrup while whisking. Bring the mixture back to a boil while whisking continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Combine the chocolate, cocoa butter, and honey in a bowl large enough to accommodate the entire recipe. Strain the hot bacon-maple cream over the chocolate mixture. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "bagel", "schema_version": 2, @@ -19833,184 +9225,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "bagels", - "schema_version": 2, - "save_version": 6, - "title": "Bagels", - "summary": "Yield: twelve 120 g (4.2 oz) bagels", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1472, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twelve 120 g (4.2 oz) bagels\",\"The toppings will stick better if you brush the top of each bagel with an egg white wash made by whisking 1 egg white with 1 tablespoon of water.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 510, - "unit_id": "gram", - "percentage": 56.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_yeast_fresh", - "position": 3, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 1.98, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_malt_powder", - "position": 4, - "ingredient_id": "malt_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 21, - "unit_id": "gram", - "percentage": 2.31, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a hook attachment, combine all of the ingredients and mix on low speed until a dough forms.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Increase the speed to medium and mix until gluten is developed and a \"window\" is achieved.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Shape the dough into a ball and place in an oiled bowl. Cover and bulk ferment for 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Divide the dough into 120 g (4.2 oz) pieces.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pre-shape, then cover and bench rest for 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Final shape, then refrigerate for at least 1 hour, or up to 24 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Boil the bagels for 30 seconds on each side in malted water then press into desired toppings before baking.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 450°F (232°C) until golden brown (about 12-18 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "baileys_sourdough", "schema_version": 2, @@ -20266,1566 +9480,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "banana", - "schema_version": 2, - "save_version": 6, - "title": "Banana", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1435, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Diced brioche or challah work well with this recipe. Be sure the bread is slightly dried out prior to thoroughly saturating it with the warm custard. Stud with fresh banana chunks before baking.\",\"Bread pudding can be refrigerated for up to 3 days and reheated to order.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_bananas", - "position": 9, - "ingredient_id": "bananas", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "very ripe", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_dark_rum", - "position": 10, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the milk, cream, sugars, salt, and vanilla bean to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Meanwhile, whisk the whole eggs and yolks together until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper ½ of the hot milk mixture into the egg mixture. Use a rubber spatula to scrape all of the tempered egg mixture back into the saucepan. Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Puree the bananas and rum in a blender until smooth. Whisk the puree into the custard.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149°C), covered, just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "banana_bread", - "schema_version": 2, - "save_version": 15, - "title": "Banana Bread", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": "hybrid", - "scaling_basis_id": "formula_basis", - "scaling_basis_quantity": 100, - "scaling_basis_unit_id": "gram", - "notes_json": "[\"Yield: two 9-inch loaf pans\",\"Using very ripe bananas will yield the best flavor.\"]", - "source_json": "{\"schema_version\":2,\"id\":\"banana_bread\",\"title\":\"Banana Bread\",\"categories\":[\"dessert\"],\"tags\":[\"quick-bread\",\"banana\"],\"yield\":{\"amount\":{\"quantity\":369.85,\"unit_id\":\"gram\"},\"basis\":\"theoretical\"},\"scaling\":{\"mode\":\"hybrid\",\"basis_id\":\"formula_basis\",\"basis_amount\":{\"quantity\":100,\"unit_id\":\"gram\"}},\"components\":[{\"id\":\"main\",\"name\":\"Main\",\"items\":[{\"id\":\"line_01_flour_cake\",\"reference\":{\"ingredient_id\":\"flour_cake\"},\"amount\":{\"quantity\":100,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true},{\"id\":\"line_02_fat\",\"reference\":{\"ingredient_id\":\"canola_oil\"},\"amount\":{\"quantity\":100,\"unit_id\":\"gram\"},\"percentage\":100},{\"id\":\"line_03_sugar\",\"reference\":{\"ingredient_id\":\"sugar\"},\"amount\":{\"quantity\":58,\"unit_id\":\"gram\"},\"percentage\":58},{\"id\":\"line_04_banana\",\"reference\":{\"ingredient_id\":\"banana\"},\"amount\":{\"quantity\":40,\"unit_id\":\"gram\"},\"percentage\":40},{\"id\":\"line_05_egg_whole\",\"reference\":{\"ingredient_id\":\"egg_whole\"},\"amount\":{\"quantity\":40,\"unit_id\":\"gram\"},\"percentage\":40},{\"id\":\"line_06_walnut\",\"reference\":{\"ingredient_id\":\"walnut\"},\"amount\":{\"quantity\":25,\"unit_id\":\"gram\"},\"percentage\":25},{\"id\":\"line_07_baking_powder\",\"reference\":{\"ingredient_id\":\"baking_powder\"},\"amount\":{\"quantity\":5,\"unit_id\":\"gram\"},\"percentage\":5},{\"id\":\"line_08_salt\",\"reference\":{\"ingredient_id\":\"salt\"},\"amount\":{\"quantity\":1.25,\"unit_id\":\"gram\"},\"percentage\":1.25},{\"id\":\"line_09_baking_soda\",\"reference\":{\"ingredient_id\":\"baking_soda\"},\"amount\":{\"quantity\":0.6,\"unit_id\":\"gram\"},\"percentage\":0.6}]}],\"steps\":[{\"id\":\"step_01\",\"order\":1,\"instruction\":\"Combine, mix dry.\",\"component_ids\":[\"main\"]},{\"id\":\"step_02\",\"order\":2,\"instruction\":\"Combine, mix wet.\",\"component_ids\":[\"main\"]},{\"id\":\"step_03\",\"order\":3,\"instruction\":\"Add liquid to dry.\",\"component_ids\":[\"main\"]},{\"id\":\"step_04\",\"order\":4,\"instruction\":\"Mix only until flour just moistened.\",\"component_ids\":[\"main\"]},{\"id\":\"step_05\",\"order\":5,\"instruction\":\"Bake immediately, 50 min at 375 °F.\",\"component_ids\":[\"main\"]}],\"notes\":[\"Formula uses a nominal 100 g basis; review the yield before use.\"]}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 55.56, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 88.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.22, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_bananas", - "position": 5, - "ingredient_id": "bananas", - "subrecipe_id": null, - "quantity": 700, - "unit_id": "gram", - "percentage": 155.56, - "basis_member": 0, - "optional": 0, - "notes": "mashed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and vanialla bean seeds.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the mashed bananas, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "banana_peanut_butter_semifreddo", - "schema_version": 2, - "save_version": 6, - "title": "Banana-Peanut Butter Semifreddo", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1055, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_bananas", - "position": 6, - "ingredient_id": "bananas", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "diced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_peanut_butter", - "position": 7, - "ingredient_id": "peanut_butter", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the first weight of cream to soft peaks; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the second weight of cream, sugar, and bananas to a boil. Puree until smooth and pour over the peanut butter and bloomed gelatin. With an immersion blender, blend the mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a Swiss meringue with the egg whites and sugar; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ⅓ of the whipped cream into the puree to lighten, followed by the meringue.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold in the remaining whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Mold as desired and freeze immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "banana_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Banana Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1315, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"Using very ripe bananas will yield the best flavor.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_bananas", - "position": 1, - "ingredient_id": "bananas", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": 192, - "basis_member": 0, - "optional": 0, - "notes": "mashed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 60, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 0.8, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_canola_oil", - "position": 6, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 48, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_soda", - "position": 8, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the bananas, eggs, sugars, and vanilla bean seeds until it forms a puree.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the oil, followed by the sifted dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Mix just until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350°F (177°C) until the cake is browned and springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "basic_creme_mousseline", - "schema_version": 2, - "save_version": 6, - "title": "Basic Crème Mousseline", - "summary": "Crème mousseline is also known as German buttercream and makes a lovely filling for the classic French strawberry cake Fraisier.", - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2093, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The butter should not be added if the pastry cream is still hot or it can melt and separate. If this happens, finish beating, then refrigerate the mousseline until well chilled and mix again with the paddle attachment to emulsify.\",\"If the pastry cream or butter are too cold, the butter will not incorporate properly. If this happens, warm the pastry cream and mix with the paddle attachment to emulsify.\",\"Cold pastry cream may be used, but you must mix the pastry cream until smooth and tepid, then blend in softened butter.\",\"Once chilled, crème mousseline becomes firm. This makes for an excellent choice as a filling for cakes that must be left unrefrigerated for a long time or that are to be served in a warm environment.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pastry_cream", - "position": 1, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 1610, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 483, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare the pastry cream on page 218.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, beat the hot pastry cream until slightly warm, about 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the pastry cream is slightly warm, add the butter in several additions, beating until completely incorporated and the mixture is light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "basic_ice_cream_base", - "schema_version": 2, - "save_version": 6, - "title": "Basic Ice Cream Base", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 820, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_dextrose", - "position": 4, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_invert_sugar", - "position": 7, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_ice_cream_stabilizer", - "position": 9, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk powder and dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat until warm, 105°F (40°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk together the egg yolks and the first weight of granulated sugar. Add to the warm milk mixture along with the invert sugar, second weight of sugar, stabilizer, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "baumkuchen_torte", - "schema_version": 2, - "save_version": 6, - "title": "Baumkuchen Torte", - "summary": "Yield: one half hotel pan. In German, \"baumkuchen\" means \"tree cake.\" These cakes are traditionally made by brushing layers of batter onto a rotating spit, allowing one layer to cook fully before brushing on the next, which gives the final cake the appearance of concentric tree rings. In this version, the method of broiling each layer gives the cake those same golden striations, but with the layers stacked on top of each other rather than around each other in rings. Baumkuchen prepared in this manner is often used to line terrine molds for both sweet and savory applications, or can be simply sliced and served like any other cake.", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2625, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half hotel pan\",\"For added flavor and moisture, during the baking process brush a light coating of apricot jam thinned with rum on top of every other cooked layer.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_paste", - "position": 1, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_rum", - "position": 4, - "ingredient_id": "rum", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": "dark", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_zest", - "position": 5, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cardamom", - "position": 6, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_nutmeg", - "position": 7, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_bean", - "position": 8, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_heavy_cream", - "position": 9, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 70, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_yolk", - "position": 10, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_whites", - "position": 11, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 300, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_sugar", - "position": 12, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 150, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_cream_of_tartar", - "position": 13, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_flour_cake", - "position": 14, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_almond_flour", - "position": 15, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_16_salt", - "position": 16, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the almond paste and sugar until crumbs form. Add the butter and then cream until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the rum, zest, spices, and cream, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gradually add the egg yolks, scraping down the bowl again.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the meringue into the almond paste mixture until streaky, followed by the dry ingredients until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Line a half hotel pan with pan spray and parchment paper.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Spoon a small amount of batter onto the parchment paper. With an off-set spatula, spread the batter to approximately ⅛-inch thick. You want to cover the paper completely with a thin, even layer.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Place under a broiler and cook until light brown; this should take about 1-2 minutes and often requires that you rotate the hotel pan to ensure even baking. Spread another layer of batter over the cake and place under the broiler. Continue on in this way until all of the batter is used.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "beer_cheese", "schema_version": 2, @@ -22066,265 +9720,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "beet_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Beet Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_beet_puree", - "position": 3, - "ingredient_id": "beet_puree", - "subrecipe_id": null, - "quantity": 900, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_orange_juice", - "position": 4, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 213, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_brown_sugar", - "position": 6, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_bean", - "position": 8, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cinnamon", - "position": 9, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_ginger", - "position": 10, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_coriander", - "position": 11, - "ingredient_id": "coriander", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_milk_whole", - "position": 12, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_heavy_cream", - "position": 13, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, lightly mix the whole eggs and yolks to blend. Add the puree and juice and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sugars and spices, followed by the milk and cream.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 300ºF (149ºC) in blind baked tart shells until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "benihana_yum_yum_sauce", "schema_version": 2, @@ -23023,3376 +10418,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "biscuit_a_la_cuillere", - "schema_version": 2, - "save_version": 6, - "title": "Biscuit a la Cuillère", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1214, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"This cake batter can also be piped into traditional \\\"lady fingers.\\\"\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 120, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks and extract, then fold into the meringue until streaky.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Fold the sifted dry ingredients into the meringue just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread onto a parchment-lined sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sift additional powdered sugar on top of the cake before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "biscuit_a_la_cuillere_au_chocolat", - "schema_version": 2, - "save_version": 6, - "title": "Biscuit a la Cuillère au Chocolat", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1215, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"This cake batter can also be piped into traditional \\\"lady fingers.\\\"\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 163.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 36.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 1.36, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": 111.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_confectioners_sugar", - "position": 5, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": 86.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cornstarch", - "position": 7, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 57, - "unit_id": "gram", - "percentage": 25.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cocoa_powder", - "position": 8, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 57, - "unit_id": "gram", - "percentage": 25.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.14, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare a stiff peak French meringue with the egg whites, granulated sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks and powdered sugar, then fold i nto the meringue until streaky.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Fold the sifted dry ingredients into the meringue just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread onto a parchment-lined sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sift additional powdered sugar on top of the cake before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "bittersweet_chocolate_custard_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Bittersweet Chocolate Custard Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1020, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe can be infused with coffee, spices, tea, ginger, citrus, etc.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, milk, sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Pour over the chocolate, allow to stand for a few minutes, then whisk until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the egg yolks into the chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the filling through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 250°F (121ºC) in blind baked tart shells just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "bittersweet_chocolate_ganache_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Bittersweet Chocolate Ganache Tart Filling", - "summary": "Yield: two 9-inch tarts", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 900, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch tarts\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 344, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "61%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 136, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 44, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 376, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the chocolate, butter, sugar, and salt in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the cream to a boil and pour over the chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Allow the mixture to stand for a few minutes, then emulsify gently to avoid creating air bubbles.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour the ganache into blind baked tart shells and allow to cool and set at room temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "bittersweet_chocolate_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Bittersweet Chocolate Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2185, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe can also be prepared by folding warm melted chocolate into warm pâte à bombe, then folding the whipped cream into that.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 665, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate over a water bath in a bowl large enough to accommodate the entire recipe; keep very warm.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a pâte à bombe with the egg yolks, sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the whipped cream into the very warm chocolate quickly and deliberately.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the pâte à bombe into the chocolate/cream mixture.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "black_cherry_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Black Cherry Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1940, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_black_cherry_puree", - "position": 4, - "ingredient_id": "black_cherry_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_kirschwasser", - "position": 6, - "ingredient_id": "kirschwasser", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and Kirschwasser. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "black_forest_chocolate_cake", - "schema_version": 2, - "save_version": 6, - "title": "Black Forest Chocolate Cake", - "summary": "Yield: two 6-inch cake pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1093, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 6-inch cake pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 65, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_powered_sugar", - "position": 2, - "ingredient_id": "powered_sugar", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 135, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": 95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cream_of_tartar", - "position": 9, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 1.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_flour_cake", - "position": 10, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_cocoa_powder", - "position": 11, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the whole egg, yolks, and extract. Add to the mixer in 3 additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a separate mixing bowl fitted with a whisk attachment, make a stiff peak French meringue with the egg whites, sugar, and cream of tartar. Gently fold into the butter mixture until streaky.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold the sifted dry ingredients into the meringue mixture until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177ºC) until the cake springs back to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "black_olive_parmesan_sable_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Black Olive-Parmesan Sablé Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1781, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_parmesan_cheese", - "position": 1, - "ingredient_id": "parmesan_cheese", - "subrecipe_id": null, - "quantity": 535, - "unit_id": "gram", - "percentage": 118.89, - "basis_member": 0, - "optional": 0, - "notes": "grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 83.33, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_black_pepper", - "position": 6, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_herbes_de_provence", - "position": 7, - "ingredient_id": "herbes_de_provence", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": "1 tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_oil_cured_black_olives", - "position": 8, - "ingredient_id": "oil_cured_black_olives", - "subrecipe_id": null, - "quantity": 263, - "unit_id": "gram", - "percentage": 58.44, - "basis_member": 0, - "optional": 0, - "notes": "minced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_olive_oil", - "position": 9, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the cheese, butter, flours, and seasonings until well blended.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the olives and oil and mix just until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Wrap the dough in plastic wrap and refrigerate until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Roll to ⅜-inch thick, cut into desired size and place on parchment-lined sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325°F (163°C) until light golden brown and just baked through.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "black_sesame_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Black Sesame Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 882, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 88, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 44, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 185, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_dextrose", - "position": 5, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_ice_cream_stabilizer", - "position": 6, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_invert_sugar", - "position": 9, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_black_sesame_tahini_paste", - "position": 10, - "ingredient_id": "black_sesame_tahini_paste", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk powder to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat until warm, 105°F (40°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the mixture is warm, add the blended sugar, dextrose, stabilizer, and salt, followed by the egg yolks and invert sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "When heated, blend in the tahini paste with an immersion blender until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blackberry_almond_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Blackberry-Almond Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1370, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 600, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": 293.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_almond_flour", - "position": 4, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 500, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_confectioners_sugar", - "position": 5, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 186.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 3.33, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_blackberry_puree", - "position": 8, - "ingredient_id": "blackberry_puree", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_lime_zest", - "position": 9, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 3.33, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare a medium peak French meringue with the egg whites, granulated sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fold the sifted dry ingredients into the meringue until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the puree and zest. Sacrifice some of the batter to lighten the puree mixture, then fold into the rest of the batter just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350ºF (177ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blackberry_granite", - "schema_version": 2, - "save_version": 6, - "title": "Blackberry Granité", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1600, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe is also nice infused with chili peppers, black or red peppercorns, tea, fresh ginger, lemongrass, or vanilla beans.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_blackberries", - "position": 3, - "ingredient_id": "blackberries", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_gelatin_sheet", - "position": 4, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_blackberry_puree", - "position": 6, - "ingredient_id": "blackberry_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lemon_juice", - "position": 7, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water and sugar to a boil. Add the blackberries and simmer on low heat until they break down.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Set aside the cooked blackberries and allow to infuse for 30 minutes, then strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water. Drain and gently melt with 2 tablespoons of the strained blackberry syrup.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the melted gelatin, blackberry syrup, puree, and juice to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Measure and adjust the °Brix between 15°-20° depending on the sweetness of the blackberries and your taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blackberry_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Blackberry Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1980, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_blackberry_puree", - "position": 4, - "ingredient_id": "blackberry_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_blackberry_brandy", - "position": 6, - "ingredient_id": "blackberry_brandy", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and brandy. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blackout_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Blackout Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1688, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cocoa_powder", - "position": 3, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_soda", - "position": 4, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 9, - "unit_id": "gram", - "percentage": 4.5, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_powder", - "position": 5, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_buttermilk", - "position": 7, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 112.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_coffee", - "position": 8, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 112.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_butter", - "position": 10, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 56.5, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_vanilla_extract", - "position": 11, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_egg_whites", - "position": 12, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_sugar", - "position": 13, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_cream_of_tartar", - "position": 14, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 1.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the buttermilk, coffee, whole eggs, butter, and extract until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the wet ingredients into the sifted dry ingredients until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare a stiff peak French meringue with the egg whites, sugar, and cream of tartar. Fold the meringue into the batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blood_orange_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Blood Orange Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2160, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_blood_orange_puree", - "position": 4, - "ingredient_id": "blood_orange_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the pâte à bombe. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blueberry_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Blueberry Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2130, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_blueberry_puree", - "position": 4, - "ingredient_id": "blueberry_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cr_me_de_cassis", - "position": 6, - "ingredient_id": "cr_me_de_cassis", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "optional", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and alcohol, if using. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "blueberry_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Blueberry Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1845, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 338, - "unit_id": "gram", - "percentage": 84.5, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 62.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 62.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_semolina", - "position": 8, - "ingredient_id": "semolina", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_powder", - "position": 9, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_milk_whole", - "position": 10, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 31.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_sour_cream", - "position": 11, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 31.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_blueberries", - "position": 12, - "ingredient_id": "blueberries", - "subrecipe_id": null, - "quantity": 275, - "unit_id": "gram", - "percentage": 68.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugars, and zest.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately fold in the sifted dry and wet ingredients, beginning and ending with the dry.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold in the blueberries.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "blueberry_raspberry_blend", "schema_version": 2, @@ -26468,1154 +10493,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "bran_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Bran Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1507, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 266, - "unit_id": "gram", - "percentage": 59.24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_canola_oil", - "position": 3, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 178, - "unit_id": "gram", - "percentage": 39.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 342, - "unit_id": "gram", - "percentage": 76.17, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_bran_flour", - "position": 5, - "ingredient_id": "bran_flour", - "subrecipe_id": null, - "quantity": 107, - "unit_id": "gram", - "percentage": 23.83, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_soda", - "position": 6, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.23, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.78, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_milk_whole", - "position": 8, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 60.13, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_molasses", - "position": 9, - "ingredient_id": "molasses", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 18.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_carrots", - "position": 10, - "ingredient_id": "carrots", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 18.93, - "basis_member": 0, - "optional": 0, - "notes": "peeled & grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_pineapple", - "position": 11, - "ingredient_id": "pineapple", - "subrecipe_id": null, - "quantity": 63, - "unit_id": "gram", - "percentage": 14.03, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_golden_raisins", - "position": 12, - "ingredient_id": "golden_raisins", - "subrecipe_id": null, - "quantity": 43, - "unit_id": "gram", - "percentage": 9.58, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the egg and sugar until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the oil.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately fold the sifted dry and wet ingredients into the whipped egg.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold in the carrots, pineapple, and raisins.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "brie_cheese_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Brie Cheese Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1278, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_brie_cheese", - "position": 4, - "ingredient_id": "brie_cheese", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "rind removed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_whole", - "position": 5, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to medium peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the brie, milk, and sugar together over a water bath. Stir until the mixture is smooth and the sugar has dissolved.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the bloomed and drained gelatin to the warm brie mixture and stir to dissolve the gelatin.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cool the melted brie mixture to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled brie mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Brie is a soft cow's milk cheese named after Brie, the French region from which it originates.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "brioche", - "schema_version": 2, - "save_version": 6, - "title": "Brioche", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1160, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 90, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_yeast_fresh", - "position": 3, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a sponge with the flour, water, and yeast. Cover and let proof in a warm place for about 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Once the sponge is ready, mix everything together- except the butter- with a dough hook for about 5 minutes, or until gluten is developed and a \"window\" is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the butter in several additions and mix until silky and all of the butter has been absorbed into the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Slow proof the dough in the refrigerator overnight. Alternatively, bulk proof for 2 hours at room temperature, chill until firm, then use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "brioche_frangipane", - "schema_version": 2, - "save_version": 6, - "title": "Brioche Frangipane", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1460, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_brandy", - "position": 5, - "ingredient_id": "brandy", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_almond_flour", - "position": 8, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 188, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_brioche_crumbs", - "position": 9, - "ingredient_id": "brioche_crumbs", - "subrecipe_id": null, - "quantity": 188, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "crust removed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar and salt, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Mix in the brandy, juice, and extract, scraping down the bowl again.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the flour and brioche crumbs; mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "brioche_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Brioche Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "brioche_milk", - "position": 1, - "name": "Brioche Milk", - "notes_json": "[]" - }, - { - "id": "brioche_ice_cream", - "position": 2, - "name": "Brioche Ice Cream", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "brioche_ice_cream", - "id": "line_03_brioche_milk", - "position": 1, - "ingredient_id": "brioche_milk", - "subrecipe_id": null, - "quantity": 1043, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_04_brown_butter", - "position": 2, - "ingredient_id": "brown_butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_05_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 32, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_06_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_07_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_08_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_09_invert_sugar", - "position": 7, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_10_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_ice_cream", - "id": "line_11_ice_cream_stabilizer", - "position": 9, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_milk", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 1650, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "brioche_milk", - "id": "line_02_brioche", - "position": 2, - "ingredient_id": "brioche", - "subrecipe_id": null, - "quantity": 263, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Brioche Milk:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Place the toasted brioche in a saucepan with the milk. Bring to a scald and set aside to infuse for 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the infused milk through a fine-mesh strainer, pressing the soaked brioche to extract as much of the liquid as possible.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Brioche Ice Cream:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the brioche milk, butter, milk powder, and salt. Blend with an immersion blender to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Heat until warm, 105°F (40°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Meanwhile, whisk together the egg yolks and the first weight of granulated sugar until light. Add the yolk mixture and invert sugar to the warm milk mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Combine the second weight of sugar with the stabilizer and whisk into the warm milk mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "broccoli_cheddar_soup", "schema_version": 2, @@ -27984,258 +10861,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "brownie_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Brownie Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 2490, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 400, - "basis_member": 0, - "optional": 0, - "notes": "61-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 625, - "unit_id": "gram", - "percentage": 500, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 120, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 300, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cream_of_tartar", - "position": 7, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 4.8, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_cake", - "position": 8, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_nuts", - "position": 10, - "ingredient_id": "nuts", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 160, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and butter over a water bath in a bowl large enough to accommodate the entire recipe. Set aside to cool until warm.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the egg yolks and sugar until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Prepare a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the egg yolk mixture into the ganache.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Gently fold the meringue into the ganache mixture until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Sift the dry ingredients over the streaky meringue and fold in along with the nuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out with moist crumbs.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "This recipe has the flavor and texture of a brownie without the thickness of traditional brownies.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "buttercream", "schema_version": 2, @@ -28385,3251 +11010,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "buttered_soft_pretzels", - "schema_version": 2, - "save_version": 6, - "title": "Buttered Soft Pretzels", - "summary": "Yield: nineteen 100 g (3.5 oz) pretzels. Flexible Chocolate Ganache, 208 Almond Cream with Almond Flour, 201 Almond Milk Mousse, 274 Almond Pâte Sablé, 16 Almond Pâte Sucrée, 21 Almond Toffee, 411 Anisette Biscotti, 300 Blackberry-Almond Sheet Cake, 127 Brioche Frangipane, 214 Caramelized Nuts, 413 Chocolate Babka, 482 Chocolate Macarons, 318 Coconut Frangipane, 216 Crispy Hazelnut Semifreddo, 466 Financier, Almond, 78 Financier, Chocolate, 79 Fruit & Nut Granola, 497 Gluten-Free Butter-Almond Sheet Cake, 150 Individual Gluten-Free Chocolate Cakes, 121 Joconde Sheet Cake, 152 Lavender-Honey Almond Bars, 316 Light Almond Sheet Cake, 154 Linzer Dough, 12 Macarons, 317 Nougat de Montélimar, 418 Nougat Semifreddo, 468 Olive Oil & Maple Granola, 498 Orange Tea Cake, 93 Orange Tuiles, 347 Pain de Gênes, 88 Petits Fours Glacé Sheet Cake, 158 Pistachio-Almond Cream, 219 Poppy Seed Sheet Cake, 159 Sacher Torte Sheet Cake, 163 Soft Coconut Dacquoise, 141 Soft Lime-Almond Dacquoise, 143 Soft Pistachio Dacquoise, 144 Speculoos, 334 Stollen, 514 Vanilla Crescents, 337 Almond Bavarian Cream, 289 Almond Cream with Almond Paste, 202 Baumkuchen Torte, 66 Chocolate Sheet Cake w/Almond Paste, 138 Frangipane Sheet Cake, 145 Pain de Gênes, 88 Petits Fours Glacé Sheet Cake, 158 Scandinavian Butter Cookies, 330 Almond Bavarian Cream, 289 Almond Milk Mousse, 274 Tiramisu Cream, 222 Apple Blondies, 298 Apple Cider Doughnuts, 490 Apple Cider Sabayon, 370 Apple Cider Sauce, 352 Apple Muffins, 502 Apple Paper Tuiles, 338 Apple Pie Filling, 52 Apple Strudel Filling, 62 Candied Apple Caramel, 412 Green Apple Mousse, 255 Soft Apple Cider Caramels, 422 Swiss Muesli, 516 Vegan Tofu Muffins, 508 Chocolate-Apricot Mousse, 251 Apricot-Passion Fruit Bavarian Cream, 290 Apricot Mousse, 246 B Cabbage-Bacon Strudel Filling, 63 Bacon-Maple Bonbon Ganache, 382 Bagels, 474 Bagels, Whole Wheat, 475 Banana Bread, 476 Banana Bread Pudding Custard, 231 Banana Sheet Cake, 124 Banana-Peanut Butter Semifreddo, 462 Chocolate-Banana Sheet Cake, 136 Fresh Banana Mousse, 254 Milk Chocolate-Banana Bonbon Ganache, 391 Strawberry-Passion Fruit Sauce, 368 Strawberry-Passion Fruit Sorbet, 452 Almond Bavarian Cream, 289 Apricot-Passion Fruit Bavarian Cream, 290 Chocolate Bavarian Cream, 291 Coconut Bavarian Cream, 292 Fruit Bavarian Cream, 293 Honey Bavarian Cream, 294 Milk Chocolate Bavarian Cream, 295 Pistachio Bavarian Cream, 296 Anisette Biscotti, 300 Chocolate Pistachio Cherry Biscotti, 301 Buttermilk Biscuits, 518 Gluten-Free Ham & Cheese Buttermilk Biscuits, 519 Blackberry-Almond Sheet Cake, 127 Blackberry Granité, 455 Blackberry Mousse, 248 Blueberry Mousse, 250 Blueberry Muffins, 503 Fresh Blueberry Pie Filling, 54 Swiss Museli, 516 Bacon-Maple Bonbon Ganache, 382 Caramel-Ginger Bonbon Ganache, 383 Caramel-Milk Chocolate Bonbon Ganache, 384 Caramel-Olive Oil & Pine Nut Bonbon Ganache, 385 Cherry-Vanilla Bonbon Ganache, 386 Chocolate-Raspberry Bonbon Ganache, 387 Coconut Bonbon Ganache, 388 Espresso Bonbon Ganache, 389 Lime Bonbon Ganache, 390 Milk Chocolate-Banana Bonbon Ganache, 391 Milk Chocolate-Lemon Bonbon Ganache, 392 Milk Chocolate-Raspberry Bonbon Ganache, 393 Mint Bonbon Ganache, 394 Passion Fruit Bonbon Ganache, 395 Pistachio Bonbon Ganache, 396 Spice Bonbon Ganache, 397 Sweet Potato-Caramel Bonbon Ganache, 398 Tea Infused Chocolate Bonbon Ganache, 399 Tequila-Lime Bonbon Ganache, 400 Valrhona Azélia-Praliné Bonbon Ganache, 401 Vanilla-Rum Bonbon Ganache, 402 Moist Honey Cake, 86 Pecan Pie Filling, 58 Sweet Potato-Caramel Bonbon Ganache, 398 Toffee Sauce, 369 Vanilla Bourbon Caramel Sauce, 356 Wet Nut Topping, 472 Peanut Brittle, 420 Sesame-Ginger Brittle, 421 Banana Bread Pudding Custard, 231 Chocolate Bread Pudding Custard, 232 Focaccia, 523 Focaccia, Cheese, 524 Fougasse, 525 Kaiser Rolls, 527 Kalamata Olive Bread, 528 Naan (Indian Flatbread), 530 Oatmeal Walnut Bread, 531 Pain De Mie, 532 Pain Viennois, 533 Potato Rolls, 535 Soft Dinner Rolls, 536 Babka, Chocolate, 482 Bagels, 474 Bagels, Whole Wheat, 475 Banana Bread, 476 Challah, Raisin, 512 Churros, 484 Coffee Cake, 485 Corn Bread, 477 Croissant Dough, 486 Danish Pastry Dough, 488 Doughnuts, Apple Cider, 490", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1920, - "yield_unit_id": "gram", - "yield_servings": 9, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: nineteen 100 g (3.5 oz) pretzels\",\"Pretzels also bake well on oiled black steel sheet pans.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 1150, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 640, - "unit_id": "gram", - "percentage": 55.65, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 3.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 29, - "unit_id": "gram", - "percentage": 2.52, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_honey", - "position": 5, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 2.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_yeast_fresh", - "position": 6, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": 1.48, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a hook attachment, combine all of the ingredients and mix on low speed until a dough forms.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Increase the speed to medium and mix until the dough is smooth and elastic.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bulk ferment until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Divide into 100 g (3.5 oz) pieces and pre-shape. Cover and bench rest for 10 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Complete final shape.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Refrigerate for at least 30 minutes, or up to 24 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Using gloves, carefully dip into a 4% lye solution for 30 seconds or boil for 5 seconds on each side in a solution of baking soda and water (20 g baking soda per liter of water).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Place the pretzels on oiled, parchment-lined sheet pans or silicone baking mats and top with with Maldon sea salt.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Bake at 425°F (218°C) until deep golden brown (about 10-12 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Brush the pretzels with melted butter while hot from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "buttermilk_biscuits", - "schema_version": 2, - "save_version": 7, - "title": "Buttermilk Biscuits", - "summary": "Yield: thirty-two 2½-inch biscuits", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1845, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": "hybrid", - "scaling_basis_id": "formula_basis", - "scaling_basis_quantity": 100, - "scaling_basis_unit_id": "gram", - "notes_json": "[\"Yield: thirty-two 2½-inch biscuits\"]", - "source_json": "{\"schema_version\":2,\"id\":\"buttermilk_biscuits\",\"title\":\"Buttermilk Biscuits\",\"categories\":[\"bread\"],\"tags\":[\"biscuit\"],\"yield\":{\"amount\":{\"quantity\":213,\"unit_id\":\"gram\"},\"basis\":\"theoretical\"},\"scaling\":{\"mode\":\"hybrid\",\"basis_id\":\"formula_basis\",\"basis_amount\":{\"quantity\":100,\"unit_id\":\"gram\"}},\"components\":[{\"id\":\"main\",\"name\":\"Main\",\"items\":[{\"id\":\"line_01_flour_all_purpose\",\"reference\":{\"ingredient_id\":\"flour_all_purpose\"},\"amount\":{\"quantity\":100,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true},{\"id\":\"line_02_buttermilk\",\"reference\":{\"ingredient_id\":\"buttermilk\"},\"amount\":{\"quantity\":65,\"unit_id\":\"gram\"},\"percentage\":65},{\"id\":\"line_03_shortening\",\"reference\":{\"ingredient_id\":\"shortening\"},\"amount\":{\"quantity\":35,\"unit_id\":\"gram\"},\"percentage\":35},{\"id\":\"line_04_sugar\",\"reference\":{\"ingredient_id\":\"sugar\"},\"amount\":{\"quantity\":5,\"unit_id\":\"gram\"},\"percentage\":5},{\"id\":\"line_05_baking_powder\",\"reference\":{\"ingredient_id\":\"baking_powder\"},\"amount\":{\"quantity\":5,\"unit_id\":\"gram\"},\"percentage\":5},{\"id\":\"line_06_salt\",\"reference\":{\"ingredient_id\":\"salt\"},\"amount\":{\"quantity\":2,\"unit_id\":\"gram\"},\"percentage\":2},{\"id\":\"line_07_baking_soda\",\"reference\":{\"ingredient_id\":\"baking_soda\"},\"amount\":{\"quantity\":1,\"unit_id\":\"gram\"},\"percentage\":1}]}],\"steps\":[{\"id\":\"step_01\",\"order\":1,\"instruction\":\"Scale.\",\"component_ids\":[\"main\"]},{\"id\":\"step_02\",\"order\":2,\"instruction\":\"Sift, combine dry.\",\"component_ids\":[\"main\"]},{\"id\":\"step_03\",\"order\":3,\"instruction\":\"Combine liquid.\",\"component_ids\":[\"main\"]},{\"id\":\"step_04\",\"order\":4,\"instruction\":\"Paddle in shortening into dry until coarse cornmeal.\",\"component_ids\":[\"main\"]},{\"id\":\"step_05\",\"order\":5,\"instruction\":\"Add liquid to dry.\",\"component_ids\":[\"main\"]},{\"id\":\"step_06\",\"order\":6,\"instruction\":\"Mix until just combined, soft dough.\",\"component_ids\":[\"main\"]},{\"id\":\"step_07\",\"order\":7,\"instruction\":\"Fold 6x.\",\"component_ids\":[\"main\"]},{\"id\":\"step_08\",\"order\":8,\"instruction\":\"Roll out 1/2 in thick.\",\"component_ids\":[\"main\"]},{\"id\":\"step_09\",\"order\":9,\"instruction\":\"Cut into shapes.\",\"component_ids\":[\"main\"]},{\"id\":\"step_10\",\"order\":10,\"instruction\":\"Place 1/2 in apart parchment paper.\",\"component_ids\":[\"main\"]},{\"id\":\"step_11\",\"order\":11,\"instruction\":\"Egg wash (optional).\",\"component_ids\":[\"main\"]},{\"id\":\"step_12\",\"order\":12,\"instruction\":\"Bake immediately, 15-20 min at 400 °F.\",\"component_ids\":[\"main\"]}],\"notes\":[\"Formula uses a nominal 100 g basis; review the yield before use.\"]}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_soda", - "position": 4, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 37.44, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_buttermilk", - "position": 6, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 560, - "unit_id": "gram", - "percentage": 61.67, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the sifted dry ingredients and butter until the mixture resembles coarse cornmeal.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the buttermilk and mix just until barely combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Turn the dough out onto a lightly floured work surface and gently knead until the dough comes together.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pat or roll the dough to 1-inch thickness.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "With a cutter or knife, portion the dough into biscuits.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191°C) until golden brown. Do not over bake.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Brush with melted butter while hot from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "buttermilk_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Buttermilk Panna Cotta", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1630, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_buttermilk", - "position": 5, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Off the heat, add the bloomed and drained gelatin to the mixture and gently whisk to minimize air bubbles.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir the buttermilk into the cream mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cabbage_bacon_strudel_filling", - "schema_version": 2, - "save_version": 6, - "title": "Cabbage-Bacon Strudel Filling", - "summary": "Yield: one 20 to 24-inch strudel", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1246, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 20 to 24-inch strudel\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cabbage", - "position": 1, - "ingredient_id": "cabbage", - "subrecipe_id": null, - "quantity": 850, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_bacon", - "position": 2, - "ingredient_id": "bacon", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch strips", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_onion", - "position": 3, - "ingredient_id": "onion", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cut in half, sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_caraway_seeds", - "position": 4, - "ingredient_id": "caraway_seeds", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_black_pepper", - "position": 7, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "freshly ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_fresh_dill", - "position": 8, - "ingredient_id": "fresh_dill", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_fresh_parsley", - "position": 9, - "ingredient_id": "fresh_parsley", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Quarter the cabbage vertically and remove any tough outer leaves and the center core. Slice the cabbage into thin strips and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a frying pan, fry the bacon on medium-low heat until crisp and golden brown. Remove the bacon with a slotted spoon and drain on paper towels.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the cabbage, onions, caraway seeds, sugar, salt, and pepper to the pan and cook until tender, but not browned.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the bacon and herbs. Adjust the seasoning to taste.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "campari_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Campari Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 590, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_powdered_glucose", - "position": 2, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_dextrose", - "position": 3, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_orange_zest", - "position": 5, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sorbet_stabilizer", - "position": 6, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_orange_juice", - "position": 7, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lemon_juice", - "position": 8, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_campari", - "position": 9, - "ingredient_id": "campari", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the glucose and dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Rub the zest with ½ of the sugar until fragrant. Combine the remaining sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the orange zest sugar and the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, whisk in the juices and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender, then strain through a fine-mesh strainer before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Weigh the liquor, previously chilled in the refrigerator, and pour into the ice cream machine at the beginning of the spinning process.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "kitchen_scale" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "candied_apple_caramel", - "schema_version": 2, - "save_version": 6, - "title": "Candied Apple Caramel", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"If the caramel is too warm, it will run off the apples without coating properly.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 482, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 614, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_light_corn_syrup", - "position": 3, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_apple_brandy", - "position": 6, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, cook the cream, sugar, corn syrup, and butter until amber in color, approximately 320°F (160°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Off the heat, whisk in the extract, brandy, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir the caramel over an ice bath until thickened enough to coat the back of a spoon before dipping.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cannoli_cream", - "schema_version": 2, - "save_version": 6, - "title": "Cannoli Cream", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1430, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Diced candied orange peel may substituted for some of the weight of the chocolate if desired.\",\"Mini chocolate chips can be used instead of the chopped chocolate pieces.\",\"Cannoli filling can be frozen for up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_ricotta_cheese", - "position": 1, - "ingredient_id": "ricotta_cheese", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "drained", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_extract", - "position": 3, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cinnamon", - "position": 4, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58%, 1/8-inch pieces", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the ricotta until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sugar, extract, and cinnamon and mix until creamy.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Fold the chocolate into the ricotta mixture.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_custard_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Caramel Custard Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 2100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "caramel", - "position": 1, - "name": "Caramel", - "notes_json": "[]" - }, - { - "id": "custard", - "position": 2, - "name": "Custard", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "caramel", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 129, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "caramel", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 188, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "caramel", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 484, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "caramel", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "caramel", - "id": "line_05_glucose_syrup", - "position": 5, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "custard", - "id": "line_06_caramel", - "position": 1, - "ingredient_id": "caramel", - "subrecipe_id": null, - "quantity": 880, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "custard", - "id": "line_07_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 890, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "custard", - "id": "line_08_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "custard", - "id": "line_09_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "custard", - "id": "line_10_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Caramel:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the butter and cream to a boil and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a separate saucepan, bring the sugar and water to a boil. Add the glucose and cook to a deep amber caramel.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Deglaze with the melted butter/cream mixture and emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Custard:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "In a saucepan, bring the caramel and cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Whisk the whole eggs, yolks, and salt. Temper with the caramel/cream mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Remove excess air bubbles from the top of the custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Bake at 200°F (93ºC) in blind baked tart shells just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_gastrique", - "schema_version": 2, - "save_version": 6, - "title": "Caramel Gastrique", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The final consistency of the gastrique will be dependent upon how much the mixture reduced.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_raspberry_vinegar", - "position": 3, - "ingredient_id": "raspberry_vinegar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_champagne_vinegar", - "position": 4, - "ingredient_id": "champagne_vinegar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_black_pepper", - "position": 6, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold & cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a caramel with the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Separately, warm the vinegars while the caramel is cooking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Deglaze the caramel with the warm vinegars, salt, and pepper.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Reduce the mixture by ½ .", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Emulsify the reduction with the cold butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Serve warm.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_ginger_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Caramel-Ginger Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 330, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_fresh_ginger", - "position": 2, - "ingredient_id": "fresh_ginger", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "small dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chocolate_white", - "position": 6, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 465, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cocoa_butter", - "position": 7, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_invert_sugar", - "position": 8, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 33, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, ginger, and salt to a boil; cover and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a deep amber caramel with the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Deglaze the caramel with the hot ginger cream, then cook until all of the caramel is dissolved.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the cocoa butter and combine with the chocolate and invert sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain the hot caramel cream over the chocolate mixture. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir in the softened butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_glaze", - "schema_version": 2, - "save_version": 6, - "title": "Caramel Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2920, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 36, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 660, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_glucose_syrup", - "position": 5, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "185ºF/85ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "clarified", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_neutral_glaze", - "position": 8, - "ingredient_id": "neutral_glaze", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "hot process", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, bring the sugar and water to a boil. Add the glucose and cook to a deep amber caramel.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the hot water, followed by the clarified butter.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Blend the bloomed and drained gelatin, caramel, glaze, and salt with an immersion blender until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use at about 84°F (29ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Caramel Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 960, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "hot", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_powdered_glucose", - "position": 3, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_ice_cream_stabilizer", - "position": 4, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, caramelize the sugar to a deep amber color.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Deglaze the caramel with the hot milk in several additions; simmer to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the glucose mixed with the stabilizer into the caramel milk.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Temper the caramel milk into the egg yolks and combine with the rest of the milk.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Off the heat, blend in the butter and salt with an immersion blender. Strain.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_milk_chocolate_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Caramel-Milk Chocolate Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 327, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 327, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_valrhona_tanariva", - "position": 4, - "ingredient_id": "valrhona_tanariva", - "subrecipe_id": null, - "quantity": 327, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "33%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_invert_sugar", - "position": 5, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 16, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a deep amber caramel with the sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream and salt to a boil. Deglaze the caramel with the hot cream, then cook until all of the caramel is dissolved.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the chocolate and invert sugar in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the hot caramel cream over the chocolate mixture. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Caramel Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2042, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Alternatively, the egg yolk mixture can be cooked in a microwave by cooking in 20-30 second intervals and whisking in between each interval until thickened .\",\"The addition of milk powder stabilizes the foam structure in the eggs and whipped cream by preventing air bubbles from collapsing, resulting in a lighter texture to the mousse.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 435, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_glucose_syrup", - "position": 7, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_water", - "position": 10, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_milk_powder", - "position": 11, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 42, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the first weight of cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bring the second weight of cream to a scald with the vanilla bean.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a deep amber caramel with the first weight of sugar and glucose and deglaze with the hot vanilla bean cream. Whisk the bloomed and drained gelatin into the caramel mixture and strain; cool until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whisk the egg yolks, second weight of sugar, water, milk powder, and salt over a water bath until very thick.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Transfer the cooked egg mixture to a mixer fitted with a whisk attachment and whisk until light and cool.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the egg mixture into the whipped cream, followed by the caramel.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_nut_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Caramel-Nut Tart Filling", - "summary": "Yield: two 8-inch tarts", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1225, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 8-inch tarts\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_whole", - "position": 5, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_walnuts_or_pecans", - "position": 6, - "ingredient_id": "walnuts_or_pecans", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_almond_cream", - "position": 8, - "ingredient_id": "almond_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, boil the sugar and water. Add the glucose and cook to a deep amber caramel.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the cream, milk, nuts, and salt to the caramel mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cook the mixture, stirring constantly for about 2 minutes, or until slightly thickened. Set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread the cooled caramel mixture in the bottom of the unbaked tart shells.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Spread the almond cream on top of the caramel-nut mixture. Make sure the almond cream touches the edges of the dough, otherwise the caramel filling will bubble out during baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350ºF (177ºC) until evenly browned.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "caramel_olive_oil_pine_nut_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Caramel-Olive Oil & Pine Nut Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 330, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 126, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 164, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 297, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_extra_virgin_olive_oil", - "position": 5, - "ingredient_id": "extra_virgin_olive_oil", - "subrecipe_id": null, - "quantity": 57, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_pine_nuts", - "position": 7, - "ingredient_id": "pine_nuts", - "subrecipe_id": null, - "quantity": 152, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make an amber caramel with the sugar, water, and glucose.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, warm the cream, olive oil, and salt to 149°F (65°C). Deglaze the caramel with the warm cream, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the nuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "caramel_sauce", "schema_version": 2, @@ -31831,150 +11211,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "caramelized_nuts", - "schema_version": 2, - "save_version": 6, - "title": "Caramelized Nuts", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"It is advisable to use a sturdy wooded spoon during the cooking process.\",\"Almonds, hazelnuts, macadamia nuts, and pistachios work well for this recipe.\",\"The nuts may be used as is or coated in tempered chocolate and then powdered sugar or cocoa powder.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_whole_nuts", - "position": 3, - "ingredient_id": "whole_nuts", - "subrecipe_id": null, - "quantity": 620, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "raw", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the sugar and water to a boil over medium-high heat.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the nuts and stir to coat evenly.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Lower to medium heat and stir continuously as the nuts go through the process of crystallizing and then caramelizing; watching carefully to avoid burning.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Once caramelized, spread the nuts onto a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Separate the nuts while still warm.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "caramelized_onion", "schema_version": 2, @@ -32153,462 +11389,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "carrot_cake", - "schema_version": 2, - "save_version": 6, - "title": "Carrot Cake", - "summary": "Yield: one 10-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1570, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 10-inch cake pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 78.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 156.86, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_canola_oil", - "position": 3, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 70.59, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_bread", - "position": 4, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon", - "position": 5, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 3.14, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.98, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 1.47, - "basis_member": 0, - "optional": 0, - "notes": "¾ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.49, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_carrots", - "position": 9, - "ingredient_id": "carrots", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": "peeled & grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_pineapple", - "position": 10, - "ingredient_id": "pineapple", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": 45.1, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_walnut", - "position": 11, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 27.45, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whip the eggs and sugar until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the oil into the egg mixture in a steady stream.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the dry ingredients and add 3 tablespoons to the carrot, pineapple, and walnut mixture and stir to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the dry ingredients to the whipped egg foam. Continue to whisk until almost combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold in the carrot, pineapple, and walnut mixture into the dry ingredients until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177ºC) until the cake springs back to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "carrot_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Carrot Sheet Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1454, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 65.79, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 149.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_canola_oil", - "position": 3, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 149.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_bread", - "position": 4, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 228, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon", - "position": 5, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 3.51, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_carrots", - "position": 8, - "ingredient_id": "carrots", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": 166.67, - "basis_member": 0, - "optional": 0, - "notes": "peeled & grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the eggs and sugar together until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Slowly add the oil into the whipping egg mixture, as to maintain an emulsion.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add 3 tablespoons of the sifted dry ingredients to the grated carrots and toss to coat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the sifted dry ingredients into the egg foam, followed by the carrots.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 400°F (204°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "carrot_soup", "schema_version": 2, @@ -32736,1093 +11516,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "chai_spiced_snickerdoodle_bars", - "schema_version": 2, - "save_version": 6, - "title": "Chai Spiced Snickerdoodle Bars", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2225, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 833, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cream_of_tartar", - "position": 2, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 2.16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_soda", - "position": 3, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.2, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 0.48, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_loose_black_tea", - "position": 5, - "ingredient_id": "loose_black_tea", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.8, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cinnamon", - "position": 6, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.8, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_ginger", - "position": 7, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 0.72, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cardamom", - "position": 8, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 0.72, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_allspice", - "position": 9, - "ingredient_id": "allspice", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.24, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cloves", - "position": 10, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.15, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_black_pepper", - "position": 11, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": 0.07, - "basis_member": 0, - "optional": 0, - "notes": "ground (⅛ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_butter", - "position": 12, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 54.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_sugar", - "position": 13, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": 46.82, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_brown_sugar", - "position": 14, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 24.01, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_honey", - "position": 15, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 7.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_16_egg_whole", - "position": 16, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 24.01, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_17_vanilla_extract", - "position": 17, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 0.96, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare formulation according to standard pastry method.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chai_spiced_sugar_recipe", - "schema_version": 2, - "save_version": 6, - "title": "Chai Spiced Sugar Recipe", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1200, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 1050, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cinnamon", - "position": 2, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_ginger", - "position": 3, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cardamom", - "position": 4, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_allspice", - "position": 5, - "ingredient_id": "allspice", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a food processor, grind all of the dry ingredients until the tea is just spotted throughout.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugars, and honey.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Spread the dough evenly onto a parchment-lined half sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Sprinkle the top with the chai spiced sugar recipe.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 300°F (149°C) until a skewer inserted comes out clean, or with a few crumbs.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "champagne_passion_fruit_granite", - "schema_version": 2, - "save_version": 6, - "title": "Champagne-Passion Fruit Granité", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1190, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_orange_zest", - "position": 4, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_gelatin_sheet", - "position": 5, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_champagne", - "position": 7, - "ingredient_id": "champagne", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_passion_fruit_puree", - "position": 8, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, sugar, and vanilla to a boil; add the zest and chill until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the syrup through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water. Drain and gently melt with 2 tablespoons of champagne.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the melted gelatin, champagne, and puree to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Measure and adjust the °Brix between 15°-20° depending on your taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "champagne_sabayon", - "schema_version": 2, - "save_version": 6, - "title": "Champagne Sabayon", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 900, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_champagne", - "position": 5, - "ingredient_id": "champagne", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks and set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks, sugar, salt, and champagne over a water bath until thickened and a ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the whipped cream into the sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cheddar_cheese_crackers", - "schema_version": 2, - "save_version": 6, - "title": "Cheddar Cheese Crackers", - "summary": "Yield: approximately 20 dozen crackers", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1915, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: approximately 20 dozen crackers\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 510, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.94, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 2.35, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.37, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_paprika", - "position": 5, - "ingredient_id": "paprika", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 0.78, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cayenne_pepper", - "position": 6, - "ingredient_id": "cayenne_pepper", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.49, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cheddar_cheese", - "position": 7, - "ingredient_id": "cheddar_cheese", - "subrecipe_id": null, - "quantity": 568, - "unit_id": "gram", - "percentage": 111.37, - "basis_member": 0, - "optional": 0, - "notes": "finely grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_parmesan_cheese", - "position": 8, - "ingredient_id": "parmesan_cheese", - "subrecipe_id": null, - "quantity": 284, - "unit_id": "gram", - "percentage": 55.69, - "basis_member": 0, - "optional": 0, - "notes": "finely grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 89.02, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_water", - "position": 10, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 11.76, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixing bowl, whisk the dry ingredients together to blend.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix the dry ingredients, cheeses and butter until the butter is ¼-inch or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add ½ of the water to the dry ingredients and mix for 10-20 seconds on low speed to hydrate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the remaining water and mix until the dough just comes together. Do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and chill for a minimum of 1 hour, or overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Roll the dough to ⅛-inch thick and cut with a fluted wheel cutter ¾-inch wide x 3-inches long. Chill the crackers before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Brush the tops with egg wash and sprinkle with fleur de sel or smoked sea salt as desired.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 325°F (163°C) until puffed and browned on the edges (about 15-20 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Store in airtight containers for up to 3 days.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "cheese_danish_filling", "schema_version": 2, @@ -33980,282 +11673,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "cheese_focaccia", - "schema_version": 2, - "save_version": 6, - "title": "Cheese Focaccia", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_olive_oil", - "position": 4, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 5.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_yeast_fresh", - "position": 7, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_gruy_re_cheese", - "position": 8, - "ingredient_id": "gruy_re_cheese", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 8.33, - "basis_member": 0, - "optional": 0, - "notes": "grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_parmesan_cheese", - "position": 9, - "ingredient_id": "parmesan_cheese", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 8.33, - "basis_member": 0, - "optional": 0, - "notes": "grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_fresh_chives", - "position": 10, - "ingredient_id": "fresh_chives", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_fresh_thyme", - "position": 11, - "ingredient_id": "fresh_thyme", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_black_pepper", - "position": 12, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.42, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, combine the first 9 ingredients and mix on low speed for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the chopped chives, thyme, and black pepper.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Continue to mix on medium speed for 3-5 minutes, or until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pre-shape into a round and place on an oiled parchment-lined half sheet pan. Rub the top of the dough with olive oil. Cover with plastic wrap and proof until doubled in volume.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stretch the dough carefully to fit an entire half sheet pan, being careful not to over-deflate.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Dimple the dough and top with olive oil, more cheese, fleur de sel, and pepper. Proof for 20-30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 400°F (204ºC) for 10-12 minutes, or until the internal temperature is between 200-210°F (93-99ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "cheesecake", "schema_version": 2, @@ -34515,1216 +11932,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "cheesecake_graham_cracker_crust", - "schema_version": 2, - "save_version": 6, - "title": "Cheesecake Graham Cracker Crust", - "summary": "Yield: three 10-inch cake pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 670, - "yield_unit_id": "gram", - "yield_servings": 3, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: three 10-inch cake pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_graham_cracker_crumbs", - "position": 1, - "ingredient_id": "graham_cracker_crumbs", - "subrecipe_id": null, - "quantity": 355, - "unit_id": "gram", - "percentage": 1014.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": 600, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix all of the ingredients until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Evenly press onto the bottom of the parchment-lined cake pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 350°F (177°C) until lightly browned and just set (about 5-7 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cool thoroughly before pouring the cheesecake batter over the crust.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chef_michael_mignano_s_famous_mignano_bar", - "schema_version": 2, - "save_version": 6, - "title": "Chef Michael Mignano's Famous \"Mignano Bar\"", - "summary": "Yield: one half-size frame 15.5\" L x 10.75\" W x 2.38\" H", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 4400, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half-size frame 15.5\\\" L x 10.75\\\" W x 2.38\\\" H\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cashew_nuts", - "position": 1, - "ingredient_id": "cashew_nuts", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_macadamia_nuts", - "position": 2, - "ingredient_id": "macadamia_nuts", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 36, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_brown_sugar", - "position": 6, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 440, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_corn_syrup", - "position": 7, - "ingredient_id": "corn_syrup", - "subrecipe_id": null, - "quantity": 681, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_evaporated_milk", - "position": 8, - "ingredient_id": "evaporated_milk", - "subrecipe_id": null, - "quantity": 483, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Lightly toast the nuts; set aside to cool, then coarsely chop and combine with the salt in a bowl.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Prepare a flat half sheet pan with parchment paper and frame. Grease the interior of the frame and paper with vegetable oil.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the cream, sugars, corn syrup, evaporated milk and butter in a heavy-bottomed saucepan, whisk to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cook the mixture to 242°F (117°C), then quickly mix in the salted nuts.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour the caramel into the prepared frame and allow to set overnight on a flat surface.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cherry_vanilla_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Cherry-Vanilla Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 460, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cocoa_butter", - "position": 2, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 42, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 139, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_zest", - "position": 5, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 21, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sour_cherry_puree", - "position": 8, - "ingredient_id": "sour_cherry_puree", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "185°F/85°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 33, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_kirschwasser", - "position": 10, - "ingredient_id": "kirschwasser", - "subrecipe_id": null, - "quantity": 33, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and cocoa butter in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream and vanilla to a boil. Add the zest and let infuse for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a crème anglaise with the infused cream, egg yolks, and sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the puree to the crème anglaise. Strain over the melted chocolate and cocoa butter, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Let cool slightly, then stir in the softened butter, followed by the kirschwasser.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chestnut_frangipane", - "schema_version": 2, - "save_version": 6, - "title": "Chestnut Frangipane", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1735, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 78.13, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chestnut_flour", - "position": 2, - "ingredient_id": "chestnut_flour", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 78.13, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_confectioners_sugar", - "position": 3, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 47.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.52, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 62.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pastry_cream", - "position": 6, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 62.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_dark_rum_or_brandy", - "position": 7, - "ingredient_id": "dark_rum_or_brandy", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10.42, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_cake", - "position": 8, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": 21.88, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, chestnut flour, sugar, and salt, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Mix in the pastry cream and liquor, scraping down the bowl again.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the cake flour and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chestnut_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Chestnut Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1510, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pastry_cream", - "position": 4, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chestnut_cream", - "position": 5, - "ingredient_id": "chestnut_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_simple_syrup", - "position": 7, - "ingredient_id": "simple_syrup", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_armagnac_or_rum", - "position": 8, - "ingredient_id": "armagnac_or_rum", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whites", - "position": 9, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the pastry and chestnut creams together with the salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the bloomed and drained gelatin with the simple syrup, then combine with the alcohol. Whisk the melted gelatin mixture into the chestnut mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Make a Swiss meringue with the egg whites and sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the meringue into the chestnut mixture, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chestnut_semifreddo", - "schema_version": 2, - "save_version": 6, - "title": "Chestnut Semifreddo", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 2070, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_rum_or_armagnac", - "position": 2, - "ingredient_id": "rum_or_armagnac", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chestnut_paste", - "position": 6, - "ingredient_id": "chestnut_paste", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a thick crème anglaise with the cream, liquor, sugar, egg yolks, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a blender, puree the hot crème anglaise with the paste until smooth; strain and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make an Italian meringue with the egg whites and sugar; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the cooled crème anglaise into the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Mold as desired and freeze immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "chick_fil_a_sauce", "schema_version": 2, @@ -36390,10 +12597,260 @@ "measure_conversions": [], "media": [] }, + { + "id": "chipotle_adobo_chicken_breast", + "schema_version": 2, + "save_version": 8, + "title": "Chipotle Adobo Chicken", + "summary": null, + "categories_json": "[]", + "tags_json": "[]", + "yield_quantity": 1900.9, + "yield_unit_id": "gram", + "yield_servings": null, + "yield_basis": "theoretical", + "scaling_mode": "amount", + "scaling_basis_id": null, + "scaling_basis_quantity": null, + "scaling_basis_unit_id": null, + "notes_json": "[]", + "source_json": "{\"auto_yield_original\":{\"quantity\":1,\"unit_id\":\"gram\",\"basis\":null}}", + "auto_yield": 1, + "station": null, + "deleted_at": null, + "cover_media_url": null, + "equipment_ids": [], + "components": [ + { + "id": "component_83faa117", + "position": 1, + "name": "Main", + "notes_json": "[]" + } + ], + "items": [ + { + "component_id": "component_83faa117", + "id": "line_9b9e1677", + "position": 1, + "ingredient_id": "chicken_breast", + "subrecipe_id": null, + "quantity": 1770, + "unit_id": "gram", + "percentage": 93.11378820558683, + "basis_member": 0, + "optional": 0, + "notes": "butterfly", + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_cc902446", + "position": 2, + "ingredient_id": "chipotle_pepper_adobo", + "subrecipe_id": null, + "quantity": 79.7, + "unit_id": "gram", + "percentage": 4.192750802251566, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_03164f18", + "position": 3, + "ingredient_id": "water", + "subrecipe_id": null, + "quantity": 15, + "unit_id": "gram", + "percentage": 0.7890999000473461, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_730d9bc6", + "position": 4, + "ingredient_id": "vinegar", + "subrecipe_id": null, + "quantity": 14.2, + "unit_id": "gram", + "percentage": 0.7470145720448209, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_d83057da", + "position": 5, + "ingredient_id": "canola_oil", + "subrecipe_id": null, + "quantity": 10.6, + "unit_id": "gram", + "percentage": 0.5576305960334579, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_5a80ee26", + "position": 6, + "ingredient_id": "cumin", + "subrecipe_id": null, + "quantity": 5, + "unit_id": "gram", + "percentage": 0.263033300015782, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_fa9cf7c8", + "position": 7, + "ingredient_id": "oregano", + "subrecipe_id": null, + "quantity": 3.5, + "unit_id": "gram", + "percentage": 0.18412331001104743, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_a88fa10a", + "position": 8, + "ingredient_id": "black_pepper", + "subrecipe_id": null, + "quantity": 1.8, + "unit_id": "gram", + "percentage": 0.09469198800568153, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "component_83faa117", + "id": "line_32a9e5c8", + "position": 9, + "ingredient_id": "garlic_powder", + "subrecipe_id": null, + "quantity": 1.1, + "unit_id": "gram", + "percentage": 0.057867326003472046, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + } + ], + "steps": [ + { + "id": "step_1", + "position": 1, + "instruction": "Blend smooth marinade", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_bffdae2d", + "position": 2, + "instruction": "marinate in fridge 12 hr", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_03fec3c9", + "position": 3, + "instruction": "remove chicken from refrigerator about 30 min before cooking", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_a566f482", + "position": 4, + "instruction": "preheat cast iron pan 450 f", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_758815d9", + "position": 5, + "instruction": "use a small amount of oil", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_41110895", + "position": 6, + "instruction": "lay chicken flat in pan", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_ee84be14", + "position": 7, + "instruction": "salt chicken", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_df9543a3", + "position": 8, + "instruction": "cook ~ 2-3 min", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_c089b778", + "position": 9, + "instruction": "flip, cook 1 -3 min", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_99458e11", + "position": 10, + "instruction": "remove and rest chicken 5 min", + "critical_control_point": 0, + "equipment_ids": [] + }, + { + "id": "step_4c52bcea", + "position": 11, + "instruction": "chop into 3/4 in pieces", + "critical_control_point": 0, + "equipment_ids": [] + } + ], + "measure_conversions": [], + "media": [] + }, { "id": "chipotle_pinto_beans", "schema_version": 2, - "save_version": 11, + "save_version": 15, "title": "Chipotle Pinto Beans", "summary": null, "categories_json": "[\"side\"]", @@ -36432,7 +12889,7 @@ "subrecipe_id": null, "quantity": 100, "unit_id": "gram", - "percentage": 84.99065102838686, + "percentage": 27.15915263443781, "basis_member": 1, "optional": 0, "notes": null, @@ -36441,13 +12898,28 @@ }, { "component_id": "main", - "id": "line_03_oil", + "id": "line_3dc7d739", "position": 2, + "ingredient_id": "water", + "subrecipe_id": null, + "quantity": 250, + "unit_id": "gram", + "percentage": 67.89788158609453, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] + }, + { + "component_id": "main", + "id": "line_03_oil", + "position": 3, "ingredient_id": "canola_oil", "subrecipe_id": null, "quantity": 4, "unit_id": "gram", - "percentage": 3.399626041135475, + "percentage": 1.0863661053775124, "basis_member": 0, "optional": 0, "notes": null, @@ -36457,12 +12929,12 @@ { "component_id": "main", "id": "line_04_chipotle_pepper_adobo", - "position": 3, + "position": 4, "ingredient_id": "chipotle_pepper_adobo", "subrecipe_id": null, "quantity": 2.5, "unit_id": "gram", - "percentage": 2.124766275709672, + "percentage": 0.6789788158609452, "basis_member": 0, "optional": 0, "notes": null, @@ -36472,12 +12944,12 @@ { "component_id": "main", "id": "line_05_lemon_juice", - "position": 4, + "position": 5, "ingredient_id": "lemon_juice", "subrecipe_id": null, "quantity": 3.33, "unit_id": "gram", - "percentage": 2.830188679245283, + "percentage": 0.904399782726779, "basis_member": 0, "optional": 0, "notes": null, @@ -36487,12 +12959,12 @@ { "component_id": "main", "id": "line_06_lime_juice", - "position": 5, + "position": 6, "ingredient_id": "lime_juice", "subrecipe_id": null, "quantity": 3.33, "unit_id": "gram", - "percentage": 2.830188679245283, + "percentage": 0.904399782726779, "basis_member": 0, "optional": 0, "notes": null, @@ -36502,12 +12974,12 @@ { "component_id": "main", "id": "line_07_onion_mince_dry", - "position": 6, - "ingredient_id": "onion_dehydrated_flake", + "position": 7, + "ingredient_id": "onion_dehydrated_powder", "subrecipe_id": null, "quantity": 2, "unit_id": "gram", - "percentage": 1.6998130205677375, + "percentage": 0.5431830526887562, "basis_member": 0, "optional": 0, "notes": null, @@ -36517,12 +12989,12 @@ { "component_id": "main", "id": "line_08_salt", - "position": 7, + "position": 8, "ingredient_id": "salt", "subrecipe_id": null, - "quantity": 1, + "quantity": 1.54, "unit_id": "gram", - "percentage": 0.8499065102838688, + "percentage": 0.4182509505703423, "basis_member": 0, "optional": 0, "notes": null, @@ -36532,12 +13004,12 @@ { "component_id": "main", "id": "line_09_cumin", - "position": 8, + "position": 9, "ingredient_id": "cumin", "subrecipe_id": null, "quantity": 0.4, "unit_id": "gram", - "percentage": 0.3399626041135475, + "percentage": 0.10863661053775125, "basis_member": 0, "optional": 0, "notes": null, @@ -36547,12 +13019,12 @@ { "component_id": "main", "id": "line_10_garlic_dehydrated_minced", - "position": 9, - "ingredient_id": "garlic_dehydrated_minced", + "position": 10, + "ingredient_id": "garlic_powder", "subrecipe_id": null, "quantity": 0.5, "unit_id": "gram", - "percentage": 0.4249532551419344, + "percentage": 0.13579576317218905, "basis_member": 0, "optional": 0, "notes": null, @@ -36562,12 +13034,12 @@ { "component_id": "main", "id": "line_11_black_pepper_ground", - "position": 10, + "position": 11, "ingredient_id": "black_pepper_ground", "subrecipe_id": null, "quantity": 0.2, "unit_id": "gram", - "percentage": 0.16998130205677375, + "percentage": 0.05431830526887563, "basis_member": 0, "optional": 0, "notes": null, @@ -36577,12 +13049,12 @@ { "component_id": "main", "id": "line_12_oregano_marjoram", - "position": 11, + "position": 12, "ingredient_id": null, "subrecipe_id": "dominos_oregano_marjoram_blend", "quantity": 0.4, "unit_id": "gram", - "percentage": 0.3399626041135475, + "percentage": 0.10863661053775125, "basis_member": 0, "optional": 0, "notes": null, @@ -36610,24 +13082,24 @@ "media": [] }, { - "id": "chocolate_apricot_mousse", + "id": "chipotle_roasted_chili_corn_salsa", "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Apricot Mousse", + "save_version": 4, + "title": "Chipotle Roasted Chili-Corn Salsa", "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1718, + "categories_json": "[]", + "tags_json": "[]", + "yield_quantity": 2076, "yield_unit_id": "gram", "yield_servings": null, "yield_basis": "theoretical", - "scaling_mode": null, + "scaling_mode": "amount", "scaling_basis_id": null, "scaling_basis_quantity": null, "scaling_basis_unit_id": null, "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, + "source_json": "{\"auto_yield_original\":{\"quantity\":1,\"unit_id\":\"gram\",\"basis\":null}}", + "auto_yield": 1, "station": null, "deleted_at": null, "cover_media_url": null, @@ -36643,1023 +13115,76 @@ "items": [ { "component_id": "main", - "id": "line_01_gelatin_sheet", + "id": "line_61e59440", "position": 1, - "ingredient_id": "gelatin_sheet", + "ingredient_id": "sweet_corn", "subrecipe_id": null, - "quantity": 15, + "quantity": 1680, "unit_id": "gram", - "percentage": null, + "percentage": 80.92485549132948, "basis_member": 0, "optional": 0, - "notes": null, + "notes": "frozen, thawed, drained", "nutrition_retention_factor": 1, "prep_actions": [] }, { "component_id": "main", - "id": "line_02_water", + "id": "line_f7ea5f9e", "position": 2, - "ingredient_id": "water", + "ingredient_id": "red_onion", "subrecipe_id": null, - "quantity": 75, + "quantity": 237, "unit_id": "gram", - "percentage": null, + "percentage": 11.416184971098266, "basis_member": 0, "optional": 0, - "notes": "cold", + "notes": "diced", "nutrition_retention_factor": 1, "prep_actions": [] }, { "component_id": "main", - "id": "line_03_heavy_cream", + "id": "line_f14a631f", "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 900, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_apricot_puree", - "position": 5, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_dark", - "position": 7, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 188, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "72%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the first weight of cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, combine the second weight of cream with the puree and bring to a scald.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a dry caramel with the sugar and deglaze with the scalded cream/apricot mixture in 3 additions; bring back to a gentle boil to dissolve the sugar if necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour the hot cream mixture over the chopped chocolate, let stand for a few minutes, then emulsify until smooth. Whisk in the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cool the base mixture to about 65°F (18°C), or until slightly thickened before folding in the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_babka", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Babka", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 3213, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"If the dough seems too soft and excessively sticky after mixing, add more flour until it pulls away from the sides.\",\"The dough can be used in as little as 1 hour. However a long, slow fermentation improves the flavor and character of the dough.\",\"Any nut can be used depending on preference. We like hazelnuts, walnuts, pecans, or almonds.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - }, - { - "id": "filling", - "position": 3, - "name": "Filling", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 585, - "unit_id": "gram", - "percentage": 87.97, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 22.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.38, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_brown_sugar", - "position": 4, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 4.51, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 0.9, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_09_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 185, - "unit_id": "gram", - "percentage": 27.82, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_10_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 22.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_11_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 33.83, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_12_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.38, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_13_chocolate_dark", - "position": 4, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 18.05, - "basis_member": 0, - "optional": 0, - "notes": "72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_14_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 9.02, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_15_nuts", - "position": 6, - "ingredient_id": "nuts", + "ingredient_id": "jalapeno_peppers_pickled", "subrecipe_id": null, "quantity": 100, "unit_id": "gram", - "percentage": 15.04, + "percentage": 4.8169556840077075, "basis_member": 0, "optional": 0, - "notes": "toasted, coarsely chopped", + "notes": "rinsed, chopped", "nutrition_retention_factor": 1, "prep_actions": [] }, { - "component_id": "filling", - "id": "line_16_total_dough_weight", - "position": 7, - "ingredient_id": "total_dough_weight", - "subrecipe_id": null, - "quantity": 1276, - "unit_id": "gram", - "percentage": 191.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_17_yield_two_9_inch_loaf_pans", - "position": 8, - "ingredient_id": "yield_two_9_inch_loaf_pans", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": 0.15, - "basis_member": 0, - "optional": 0, - "notes": "To taste / as needed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_yeast_fresh", - "position": 1, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 6.02, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 30.08, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 12.03, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sponge:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a sponge with the yeast, milk and flour. Cover and let proof in a warm place for about 15-20 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", + "component_id": "main", + "id": "line_3871645c", "position": 4, - "instruction": "In a mixer fitted with a hook attachment, combine all of the dough ingredients with the sponge.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] + "ingredient_id": "lemon_or_lime_juice", + "subrecipe_id": null, + "quantity": 44, + "unit_id": "gram", + "percentage": 2.119460500963391, + "basis_member": 0, + "optional": 0, + "notes": null, + "nutrition_retention_factor": 1, + "prep_actions": [] }, { - "id": "step_5", + "component_id": "main", + "id": "line_0587009c", "position": 5, - "instruction": "Mix on medium-low speed for 1 minute to hydrate. Increase the speed to medium-high and mix for 5-6 minutes to develop a soft, smooth dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover and refrigerate for 6 hours or overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Filling:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Melt the butter in a saucepan. Add the sugar and salt, then whisk until the sugar is dissolved.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Remove from the heat and add the chocolate. Allow to stand for 1 minute, then whisk to emulsify. Whisk in the cocoa powder until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Shaping & Baking:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Divide the dough in ½, about 625 g (1 lb 6 oz) per loaf.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Pre-shape by patting each portion into a rectangle. Cover and bench rest for 5-10 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Roll each portion into a 12x 18-inch rectangle. Spread 275 g (9.7 oz) of chocolate filling over each surface all the way to the edges.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_14", - "position": 14, - "instruction": "Sprinkle each with 50 g (1.8 oz) of nuts and gently roll into a tight log about 18-inches long.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_15", - "position": 15, - "instruction": "With a sharp knife, slice the log completely in ½. Twist the 2 pieces until it's one big twist.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_16", - "position": 16, - "instruction": "Place onto a greased loaf pan. Lightly press down on the top to de-gas and slightly flatten.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_17", - "position": 17, - "instruction": "Egg wash the top of each loaf and top with 150 g (5.3 oz) of streusel on page 37.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_18", - "position": 18, - "instruction": "Proof until about doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_19", - "position": 19, - "instruction": "Bake at 350°F (177°C) until the internal temperature is 185°F (85°C) when a thermometer is inserted into the dough portion of the babka.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_banana_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Banana Sheet Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 58.82, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 94.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 58.82, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 7.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_soda", - "position": 6, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.75, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_banana_puree", - "position": 7, - "ingredient_id": "banana_puree", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": 152.94, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sour_cream", - "position": 8, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 58.82, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_vanilla_extract", - "position": 9, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.75, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_chocolate_chips", - "position": 10, - "ingredient_id": "chocolate_chips", - "subrecipe_id": null, - "quantity": 138, - "unit_id": "gram", - "percentage": 54.12, - "basis_member": 0, - "optional": 0, - "notes": "mini", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the puree, sour cream, and extract together.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Alternately add the sifted dry ingredients and wet ingredients, followed by the chocolate chips.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Mix until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1592, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, "ingredient_id": "salt", "subrecipe_id": null, - "quantity": 0.6, + "quantity": 15, "unit_id": "gram", - "percentage": null, + "percentage": 0.7225433526011561, "basis_member": 0, "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_chocolate_dark", - "position": 9, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%, chopped", + "notes": null, "nutrition_retention_factor": 1, "prep_actions": [] } @@ -37668,56 +13193,9 @@ { "id": "step_1", "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", + "instruction": "TODO: Add preparation instructions.", "critical_control_point": 0, "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the milk and first weight of sugar to a boil. Meanwhile, whisk the egg yolks, second weight of sugar, and salt until light and thick. Temper ⅓ of the hot milk mixture into the yolk mixture. Return everything back to the saucepan and cook on medium-low heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the chopped chocolate, let stand for a few minutes, then emulsify until smooth. Whisk in the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled chocolate crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] } ], "measure_conversions": [], @@ -38004,834 +13482,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "chocolate_bread_pudding_custard", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Bread Pudding Custard", - "summary": "Yield: twenty-five 3 oz molds", - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2900, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty-five 3 oz molds\",\"Diced brioche or challah work well with this recipe. Be sure the bread is slightly dried out prior to thoroughly saturating it with the warm custard.\",\"Bread pudding can be refrigerated for up to 3 days and reheated to order.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 488, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 355, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 568, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, milk, sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Off the heat, add the chopped chocolate to the hot cream mixture. Allow the chocolate to melt for a several minutes, then whisk until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk the egg yolks until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Temper ½ of the hot chocolate mixture into the egg yolks. Use a rubber spatula to scrape all of the tempered egg yolk mixture back into the saucepan. Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149°C), covered, just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_brownies", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Brownies", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2590, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 302.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_dark", - "position": 2, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 596, - "unit_id": "gram", - "percentage": 397.33, - "basis_member": 0, - "optional": 0, - "notes": "72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 596, - "unit_id": "gram", - "percentage": 397.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_instant_espresso_powder", - "position": 5, - "ingredient_id": "instant_espresso_powder", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 4.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 2.67, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 2.67, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_powder", - "position": 9, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 6.67, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_mini_chocolate_chips", - "position": 10, - "ingredient_id": "mini_chocolate_chips", - "subrecipe_id": null, - "quantity": 283, - "unit_id": "gram", - "percentage": 188.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_nuts", - "position": 11, - "ingredient_id": "nuts", - "subrecipe_id": null, - "quantity": 183, - "unit_id": "gram", - "percentage": 122, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and butter together and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the eggs, sugar, espresso, and extract until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the melted chocolate/butter mixture to the whipped eggs and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix until homogenous, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold in the chocolate chips and chopped nuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out with crumbs.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_butter_glaze", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Butter Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1116, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 619, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 43, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Partially melt all of the ingredients together over a water bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Off the heat, stir to finish melting the ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Use at about 86°F (30°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_chiffon_cake", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Chiffon Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1250, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_coffee", - "position": 1, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 68.57, - "basis_member": 0, - "optional": 0, - "notes": "hot", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cocoa_powder", - "position": 2, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 28.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 171.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_pastry", - "position": 4, - "ingredient_id": "flour_pastry", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_powder", - "position": 5, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 5.71, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.43, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 68.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_canola_oil", - "position": 8, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 108, - "unit_id": "gram", - "percentage": 61.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_vanilla_extract", - "position": 9, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 5.71, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_whites", - "position": 10, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 171.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_sugar", - "position": 11, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 28.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cream_of_tartar", - "position": 12, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.86, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the hot coffee and cocoa powder together until smooth; cover and set aside to cool until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sift the dry ingredients and place in a bowl large enough to accommodate the entire recipe; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the cocoa mixture, egg yolks, oil, and extract to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the wet ingredients into the sifted dry ingredients and thoroughly mix the batter until smooth and lump free.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Prepare a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the meringue into the batter just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "chocolate_chip_cookie", "schema_version": 2, @@ -39089,2404 +13739,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "chocolate_chip_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Chip Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1643, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 60.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 178, - "unit_id": "gram", - "percentage": 47.34, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 178, - "unit_id": "gram", - "percentage": 47.34, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 10.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 26.6, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 3.72, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 376, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.86, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_soda", - "position": 9, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.6, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_chocolate_chips", - "position": 10, - "ingredient_id": "chocolate_chips", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 120.74, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the eggs, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the chocolate chips and mix until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 275°F (135°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_coconut_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Coconut Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1418, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 88.89, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 111.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_pastry_cream", - "position": 3, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 88.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_desiccated_coconut", - "position": 5, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_milk_whole", - "position": 6, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cocoa_powder", - "position": 8, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 11.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_powder", - "position": 9, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 6.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the pastry cream and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the coconut, followed by the milk.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the sifted dry ingredients into the batter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_creme_brulee", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Crème Brûlée", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1890, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Crème brûlée has a shelf life up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, milk, and vanilla bean to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the melted chocolate and bring the mixture to a scald.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixing bowl, whisk together the egg yolks, sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Temper the hot chocolate cream into the egg yolk mixture until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Remove excess air bubbles from the top of the crème brûlée custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_creme_mousseline", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Crème Mousseline", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2489, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"See the Chef's Notes in the Basic Crème Mousseline recipe on page 179.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pastry_cream", - "position": 1, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 1610, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_dark", - "position": 2, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 425, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare the pastry cream on page 218.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the hot pastry cream and chopped chocolate until the chocolate is incorporated and the pastry cream has cooled until slightly warm, about 110ºF (43ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the pastry cream is slightly warm, add the butter in several additions, beating until completely incorporated and the mixture is light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_cremeux", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Crémeux", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Gelatin may be added to this recipe when using it as a filling for entremets or large tarts.\",\"How thick or thin you cook the crème anglaise will have an effect on the viscosity of the crèmeux.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 294, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 294, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 118, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chocolate_dark", - "position": 6, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 224, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "66-72%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a crème anglaise with the milk, cream, sugar, egg yolks, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the hot crème anglaise over the chopped chocolate. Let stand for 1 minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Use immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_crinkle_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Crinkle Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1470, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_canola_oil", - "position": 1, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 82.3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_unsweetened_chocolate", - "position": 2, - "ingredient_id": "unsweetened_chocolate", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 93.42, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 139.92, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 164.61, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.88, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 243, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cocoa_powder", - "position": 7, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": 15.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 4.12, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.06, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and oil. Set aside until warm, about 110°F (43ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the sugar, eggs, and extract.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the egg mixture into the chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir the sifted dry ingredients into the wet ingredients until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Scoop and roll the cookies in powdered sugar before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177ºC) until the cookies \"crack.\" Do not over bake.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_crystalline_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Crystalline Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1010, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_confectioners_sugar", - "position": 1, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 313.1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_cake", - "position": 2, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 145, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cocoa_powder", - "position": 3, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 31.03, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.72, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_orange_juice", - "position": 5, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 182, - "unit_id": "gram", - "percentage": 125.52, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 182, - "unit_id": "gram", - "percentage": 125.52, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the sifted dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the juice and mix to combine, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the melted butter in 3 additions until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_cupcakes", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Cupcakes", - "summary": "Yield: twenty 3 oz cupcakes", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1247, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty 3 oz cupcakes\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 43.46, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 38.46, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_canola_oil", - "position": 3, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 43.46, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_melted_chocolate", - "position": 4, - "ingredient_id": "melted_chocolate", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": 40.38, - "basis_member": 0, - "optional": 0, - "notes": "58%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 57.69, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_coffee", - "position": 6, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 69.23, - "basis_member": 0, - "optional": 0, - "notes": "cooled", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 3.08, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_all_purpose", - "position": 8, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cocoa_powder", - "position": 9, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 29, - "unit_id": "gram", - "percentage": 11.15, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.92, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_baking_soda", - "position": 11, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.92, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_baking_powder", - "position": 12, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.96, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_milk_whole", - "position": 13, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 183, - "unit_id": "gram", - "percentage": 70.38, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the oil and mix until combined, followed by the melted chocolate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the coffee and extract.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Alternately fold the sifted dry ingredients and milk into the batter just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fill cupcake liners approximately ⅔ full with batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Let cool in the pan for about 10 minutes before unmolding.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_financier", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Financier", - "summary": null, - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1230, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 171.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": 421.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_chocolate_dark", - "position": 3, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 284, - "unit_id": "gram", - "percentage": 373.68, - "basis_member": 0, - "optional": 0, - "notes": "58%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_confectioners_sugar", - "position": 4, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 131.58, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_almond_flour", - "position": 5, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 105.26, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 76, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.64, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.64, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whites", - "position": 9, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 315.79, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make beurre noisette with the butter. Strain through a fine-mesh strainer and set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a ganache with the cream and chocolate and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a paddle attachment, combine the sifted dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Mix the egg whites into the dry ingredients in 3 additions on low speed, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the beurre noisette in 3 additions.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Add the ganache and mix until incorporated.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Chill until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350°F (177ºC) until the cake springs back to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_fondue", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Fondue", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 2116, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe is great served over profiteroles or used as a warm dipping sauce.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_corn_syrup", - "position": 2, - "ingredient_id": "corn_syrup", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the chocolate and corn syrup in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the cream and salt to a boil. Pour the hot cream over the chocolate, allow to stand for 2 minutes, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the softened butter.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_fruit_nut_cake", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Fruit& Nut Cake", - "summary": "Yield: two 6-inch cake pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1910, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 6-inch cake pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cocoa_powder", - "position": 2, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 16.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.89, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_soda", - "position": 4, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.89, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.79, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pecan", - "position": 6, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 44.64, - "basis_member": 0, - "optional": 0, - "notes": "toasted/coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_dried_cherries", - "position": 7, - "ingredient_id": "dried_cherries", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 26.79, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_dried_apricots", - "position": 8, - "ingredient_id": "dried_apricots", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 26.79, - "basis_member": 0, - "optional": 0, - "notes": "coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_dried_pears", - "position": 9, - "ingredient_id": "dried_pears", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 26.79, - "basis_member": 0, - "optional": 0, - "notes": "coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_chocolate_chips", - "position": 10, - "ingredient_id": "chocolate_chips", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 26.79, - "basis_member": 0, - "optional": 0, - "notes": "mini", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_butter", - "position": 11, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 265, - "unit_id": "gram", - "percentage": 94.64, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_sugar", - "position": 12, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 142.86, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_honey", - "position": 13, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 14.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_egg_whole", - "position": 14, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 89.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_sour_cream", - "position": 15, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": 67.86, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_16_vanilla_extract", - "position": 16, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.79, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_17_coffee_extract", - "position": 17, - "ingredient_id": "coffee_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.79, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Toss the chopped dried fruit, nuts, and chocolate chips with a small amount of the sifted dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and honey until light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Combine the sour cream with the extracts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Alternately add the sifted dry ingredients with the sour cream mixture, beginning and ending with the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold in the dried fruits, nuts, and chocolate chips, scraping down the bowl as necessary; do not overwork the batter.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out with some moist crumbs. Unmold the cakes onto a cooling rack.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Soak the cake with brandy or rum flavored simple syrup if desired while the cake is still warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Glaze the cake with the chocolate-butter glaze on page 189.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "mo", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "chocolate_ganache", "schema_version": 2, @@ -41569,5252 +13821,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "chocolate_ganache_frosting", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Ganache Frosting", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2340, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 316, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_brandy", - "position": 5, - "ingredient_id": "brandy", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate over a water bath in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, heat the cream, glucose, and salt to 85°F (29ºC). Pour over the melted chocolate and emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the brandy.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour the ganache into hotel pans and cover the surface with plastic wrap to prevent a skin from forming. Allow to set at room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill or warm the ganache to desired consistency as needed before use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_hazelnut_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Hazelnut Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1535, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_hazelnut_liqueur", - "position": 3, - "ingredient_id": "hazelnut_liqueur", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_gianduja", - "position": 6, - "ingredient_id": "gianduja", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_water", - "position": 8, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_yolk", - "position": 10, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolates together and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar, water, whole eggs, and yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin with the liqueur. Add it to the slightly warm pâte à bombe until well combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the warm melted chocolate into the pâte à bombe, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 368, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 338, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 93, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_powder", - "position": 4, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 83, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_ice_cream_stabilizer", - "position": 7, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_invert_sugar", - "position": 10, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 330, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_chocolate_dark", - "position": 11, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 128, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "70-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk, water, and cream. With an immersion blender, blend in the milk powder and cocoa powder to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat until warm, 105°F (40°C); whisk in the blended sugar, stabilizer, and salt, followed by the yolks and invert sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When heated, blend in the couverture with an immersion blender until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_lace_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Lace Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2230, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 88.89, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": 106.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_dark_corn_syrup", - "position": 3, - "ingredient_id": "dark_corn_syrup", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 111.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chocolate_dark", - "position": 6, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 53.33, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cocoa_nibs", - "position": 7, - "ingredient_id": "cocoa_nibs", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 35.56, - "basis_member": 0, - "optional": 0, - "notes": "optional", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the sugar, corn syrup, and salt into the melted butter.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk in the sifted flour until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the melted chocolate and whisk to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the cocoa nibs if desired.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Roll into desired sized balls and place on a silicone baking mat. Lightly flatten each ball with the palm of your hand.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_lava_cake", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Lava Cake", - "summary": null, - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 928, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This cake can be portioned into prepared molds and frozen for up to one month. Defrost the cakes, bring to room temperature and bake to order.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 349.23, - "basis_member": 0, - "optional": 0, - "notes": "72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": 292.31, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 384.62, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 123.08, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": 176.92, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.92, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and butter together. Set aside to cool until 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whip the whole eggs, yolks, and sugar on medium speed until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the warm chocolate mixture to the egg foam, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the flour and salt, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Portion into prepared individual molds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake is set on the outside but still liquidy in the center. Bake and serve to order.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_macarons", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Macarons", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 980, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Do not open the oven door during the baking process. Total baking time will be determined based on the size of the macarons and calibration of the oven.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_10x_sugar", - "position": 1, - "ingredient_id": "10x_sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_almond_flour", - "position": 2, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 63, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cream_of_tartar", - "position": 8, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_unsweetened_chocolate", - "position": 9, - "ingredient_id": "unsweetened_chocolate", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_red_gel_food_coloring", - "position": 10, - "ingredient_id": "red_gel_food_coloring", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 drop", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a food processor, grind the sugar, flour, and salt until fine. Pass the mixture through a sifter and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the ground flour mixture and the first weight of egg whites until a smooth paste forms. Cover with plastic wrap and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate and keep warm, about 120°F (49°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar, water, second weight of egg whites, and tartar. Cook the sugar to 243°F (117°C) and time the sugar with the egg whites so the whites are at medium peaks when the sugar reaches the proper temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whisk the meringue until tepid, about 120°F (49°C), then add the warm melted chocolate to the meringue while whipping. Add the food coloring after the chocolate is fully incorporated.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the meringue into the reserved paste in 3 additions, then macaronage the mixture until a ribbon flattens back into the mix in about 10 seconds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Pipe into rounds about 1¼-inches in diameter on a silicone baking mat. Set aside to air dry for 60 minutes to develop a shell before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 300°F (149°C) for 11-12 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_mirror_glaze", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Mirror Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1250, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 290, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 162, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_glucose_syrup", - "position": 6, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 145, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_invert_sugar", - "position": 7, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cocoa_powder", - "position": 8, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 108, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, bring the cream, water, sugars, and glucose to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the cocoa powder and salt and return to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Off the heat, add the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Blend the glaze with an immersion blender until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain through a fine-mesh strainer and refrigerate overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Use at about 84°F (29°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_pastry_cream_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Pastry Cream Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1470, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 625, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_hazelnut_oil", - "position": 2, - "ingredient_id": "hazelnut_oil", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cornstarch", - "position": 4, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.56, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 437.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_dark", - "position": 7, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 500, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bring the milk and oil to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Meanwhile, sift the dry ingredients. Whisk in the eggs until light and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the milk comes to a boil, temper ⅓ of the hot milk into the egg mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Combine the egg/milk mixture with the rest of the hot milk in the saucepan and boil for 2 minutes while whisking continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Off the heat, whisk the chocolate into the pastry cream until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cool down the pastry cream immediately.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350°F (177ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_pat_e_sable", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Pât e Sablé", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 894, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 90.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 30.3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.76, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 12.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": 63.64, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 36.36, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cocoa_powder", - "position": 7, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 36.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.76, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix just until combined. Do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_pate_sucree", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Pâte Sucrée", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 55.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 55.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 24.39, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_extract", - "position": 4, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.22, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 410, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cocoa_powder", - "position": 6, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 23, - "unit_id": "gram", - "percentage": 5.61, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.61, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients to the butter mixture. Mix just until combined, scraping down the bowl again.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_pistachio_cherry_biscotti", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Pistachio Cherry Biscotti", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1215, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"600 g (21.2 oz) logs will yield approximately 3½-inch sized biscotti.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 341, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 133.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cocoa_powder", - "position": 3, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 42, - "unit_id": "gram", - "percentage": 12.32, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "¾ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.73, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 58.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "¾ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_pistachio", - "position": 8, - "ingredient_id": "pistachio", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 24.93, - "basis_member": 0, - "optional": 0, - "notes": "lightly toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_dried_cherries", - "position": 9, - "ingredient_id": "dried_cherries", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 24.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the sifted dry ingredients in a mixer fitted with a paddle attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs and extract and mix until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Mix in the pistachios and dried cherries until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill until firm; this will make shaping into logs easier.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Roll the dough into desired sized logs and refrigerate or freeze.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Brush the logs with egg whites and sprinkle with granulated sugar before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325°F (163°C) until evenly browned and firm to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Slice the biscotti into desired sized slices and place on sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Bake a second time at 225°F (107°C) until dry.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_puff_pastry", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Puff Pastry", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1160, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The butter packet should be the same consistency as the dough packet when you begin assembly as this facilitates smooth and even lamination.\",\"Acid like vinegar helps relax gluten, making the dough more pliable.\",\"Puff pastry can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough_packet_detrempe", - "position": 1, - "name": "Dough Packet (Détrempe)", - "notes_json": "[]" - }, - { - "id": "butter_packet_beurrage", - "position": 2, - "name": "Butter Packet (Beurrage)", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "butter_packet_beurrage", - "id": "line_06_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 425, - "unit_id": "gram", - "percentage": 101.19, - "basis_member": 0, - "optional": 0, - "notes": "cold & softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "butter_packet_beurrage", - "id": "line_07_cocoa_powder", - "position": 2, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.9, - "basis_member": 0, - "optional": 0, - "notes": "sifted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 16.67, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 185, - "unit_id": "gram", - "percentage": 44.05, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_05_white_vinegar", - "position": 5, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.6, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Dough Packet:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, combine the flour, salt, and butter. Mix until the butter has coated the flour and is no longer visible.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the water and vinegar. Add it to the dry ingredients and mix to form a dough. Do not over mix, but be sure there are no dry spots of flour in the dough.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pat the dough packet into a square, wrap in plastic wrap, and refrigerate for at least 1 hour.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Butter Packet:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "In a mixer fitted with a paddle attachment, mix the cold butter and sifted cocoa powder until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Pat the chocolate butter packet into a square and refrigerate for at least 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Assembly:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "On a floured work surface, roll the corners of the chocolate butter packet into flaps.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Put the dough packet into the center of the butter packet and fold the flaps to completely cover the dough. Seal in the butter package.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Give the dough 2 letter turns rolling the dough ⅜-inch thick letting the dough rest in the refrigerator wrapped in plastic wrap for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Repeat 2 more letter turns rolling the dough ⅜-inch thick letting the dough rest in the refrigerator wrapped in plastic wrap for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Perform the last 2 letter turns for a total of 6.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_raspberry_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Raspberry Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_invert_sugar", - "position": 2, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 31, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_raspberry_puree", - "position": 3, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 185, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_valrhona_manjari", - "position": 4, - "ingredient_id": "valrhona_manjari", - "subrecipe_id": null, - "quantity": 461, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 108, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_citric_acid", - "position": 6, - "ingredient_id": "citric_acid", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In another saucepan, bring the puree to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour the hot cream over the chocolate. Allow to stand for one minute, then begin to emulsify, add the hot puree, and finish emulsifying until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir in the softened butter and citric acid.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_raspberry_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Raspberry Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2360, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_raspberry_liqueur", - "position": 2, - "ingredient_id": "raspberry_liqueur", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_valrhona_manjari", - "position": 3, - "ingredient_id": "valrhona_manjari", - "subrecipe_id": null, - "quantity": 315, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_milk", - "position": 4, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_raspberry_puree", - "position": 6, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the first weight of cream to soft peaks, then whisk in the alcohol; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Melt the chocolates together and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, combine the second weight of cream, puree, and butter. Bring to a boil and reduce until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the whipped cream into the very warm chocolate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the reduced raspberry mixture into the pâte à bombe.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_raspberry_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate-Raspberry Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1040, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_raspberry_puree", - "position": 5, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_raspberry_liqueur", - "position": 6, - "ingredient_id": "raspberry_liqueur", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the eggs, milk, cream, and puree together. Heat the mixture to 158ºF (70ºC) and strain over the melted chocolate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Emulsify until smooth and stir in the raspberry liqueur.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the filling through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300ºF (149ºC) in blind baked tart shells just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_roulade_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Roulade Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 930, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"This is a great recipe for making bûche de Noël.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 3.33, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cocoa_powder", - "position": 7, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 46.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_soda", - "position": 9, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks and extract and fold into the meringue until streaky.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the dry ingredients and gently fold into the meringue until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1895, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 95, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_heavy_cream", - "position": 6, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_dark", - "position": 7, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, sugar, glucose syrup, and salt to a boil. Whisk in the cocoa powder and simmer for 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a ganache with the cream and chocolate. Whisk the ganache and sugar/syrup mixture together until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the chocolate sauce through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_semifreddo", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Semifreddo", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 2090, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 650, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whites", - "position": 3, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate to 122°F (50°C); set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a Swiss meringue with the egg whites, sugar, and salt; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the chocolate into the meringue, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Mold as desired and freeze immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_sheet_cake_with_almond_paste", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Sheet Cake with Almond Paste", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1322, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_paste", - "position": 1, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cornstarch", - "position": 5, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cocoa_powder", - "position": 6, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 62, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whites", - "position": 9, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the almond paste and sugar until crumbly.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the whole eggs and yolks. Add ⅓ to the almond paste mixture and cream until smooth. Gradually add the rest of the eggs and cream until light, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and fold into the batter, followed by the melted butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare a medium peak French meringue with the egg whites and granulated sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Gently fold the meringue into the batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_sheet_cake_with_hazelnut_paste", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Sheet Cake with Hazelnut Paste", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1125, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_hazelnut_paste", - "position": 1, - "ingredient_id": "hazelnut_paste", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cocoa_powder", - "position": 3, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 52, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_confectioners_sugar", - "position": 7, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cream_of_tartar", - "position": 8, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the hazelnut paste, sugar, cocoa powder, and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the first weight of egg whites in 3 additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Prepare a stiff peak French meringue with the second weight of egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold the meringue into the hazelnut mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_souffle", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Soufflé", - "summary": "Yield: fifteen 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 959, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 5.5 oz soufflé ramekins\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 625, - "unit_id": "gram", - "percentage": 625, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 70, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 160, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make the pastry cream with the milk, sugar, yolks, flour, and salt. This base is good for 3 days in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Melt the chocolate and whisk into the weight of pastry cream base called for in the soufflé recipe until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold the meringue into the chocolate pastry cream base.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fill the soufflé ramekins that have been buttered and sugared.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191°C) until risen but still soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_souffle_cakes", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Soufflé Cakes", - "summary": "Yield: eleven 4 oz molds", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1520, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: eleven 4 oz molds\",\"The cakes can be par-baked at 350°F (177ºC) for 4½ minutes. At that point, they can be cooled, wrapped, and frozen. To finish, bring to room temperature and bake to order for about another 4½ minutes, until very soft and moist in the center without falling apart when unmolding.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 2000, - "basis_member": 0, - "optional": 0, - "notes": "72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 430, - "unit_id": "gram", - "percentage": 2150, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 1000, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 350, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 12.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 1500, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 500, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and butter in a bowl large enough to accommodate the entire recipe. Set aside and cool to about 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the egg yolks, sugar, flour, and salt until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a separate mixing bowl, make a medium peak French meringue with the egg whites and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the egg yolk mixture into the ganache, followed by the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Portion into prepared molds. Bake at 350°F (177ºC) for about 9 minutes; serve immediately.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_souffle_p106", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Soufflé", - "summary": "Yield: fifteen 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1811, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 5.5 oz soufflé ramekins\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "61-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_pastry_cream_base", - "position": 2, - "ingredient_id": "pastry_cream_base", - "subrecipe_id": null, - "quantity": 290, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whites", - "position": 3, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cream_of_tartar", - "position": 5, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make the pastry cream with the milk, sugar, yolks, flour, and salt. This base is good for 3 days in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Melt the chocolate and whisk into the weight of pastry cream base called for in the soufflé recipe until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold the meringue into the chocolate pastry cream base.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fill the soufflé ramekins that have been buttered and sugared.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191°C) until risen but still soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_sour_cream_frosting", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Sour Cream Frosting", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1920, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "99%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_dark", - "position": 2, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_confectioners_sugar", - "position": 4, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 675, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sour_cream", - "position": 6, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolates together over a water bath to 118°F (48°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the butter to the melted chocolates and allow them to melt together.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the powdered sugar and salt and combine with the sour cream in a mixer fitted with a paddle attachment and cream on low speed.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the chocolate mixture to the sour cream mixture. Mix on low speed until homogenous, scraping down the bowl as necessary. Do not over mix.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Allow the frosting to set in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "chocolate_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Chocolate Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1574, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 189.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 370, - "unit_id": "gram", - "percentage": 154.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.52, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 189.17, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the egg whites, sugar, and salt in a bowl of a mixer. Whisk over a flame or water bath until warm, 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, add the sifted flour and cocoa powder to the warmed egg white mixture. Whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gradually whisk in the warm butter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "choux_aux_craquelin", - "schema_version": 2, - "save_version": 6, - "title": "Choux aux Craquelin", - "summary": "Yield: two full sheet pans", - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1160, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two full sheet pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 90, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.63, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Spread the craquelin dough onto a silicone baking mat or parchment paper. Place a piece of parchment paper on top of the dough and roll thin and evenly to 1", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Refrigerate the dough until firm, or freeze.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pipe the pâte a choux into desired sized rounds. Cut the craquelin dough into circles large enough to cover the uncooked pâte a choux.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Place a craquelin dough circles on top on each pâte a choux round.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 375°F (191ºC) until golden brown and baked through.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "chow_mein_sauce", "schema_version": 2, @@ -47010,213 +14016,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "churros", - "schema_version": 2, - "save_version": 6, - "title": "Churros", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1167, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 82.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 82.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 42.86, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 8.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 107.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, milk, butter, sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Remove the pan from the heat and stir in the sifted flour all at once.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the pan back on medium heat and cook the paste to dry it out, stirring continuously for 2-3 minutes. A thin film will form on the bottom and the paste will pull away from the pan.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Transfer the dough to a mixer fitted with a paddle attachment and beat to release the steam. Allow the mixture to cool enough so as to not cook the eggs when added.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Slowly add the eggs, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Transfer the dough to a piping bag fitted with a large star tip.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Add oil to a deep-sided pan. Over medium heat, bring the temperature of the oil to 360°F (182°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Carefully pipe the dough into the oil, cutting with a hot knife or metal spatula in 6-inch lengths, being careful not to crowd the pan. Fry until golden brown and cooked through to the center. Drain on paper towels, then toss the churros in plain or cinnamon sugar as desired.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "cilantro_lime_rice", "schema_version": 2, @@ -47702,262 +14501,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "cinnamon_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Cinnamon Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cinnamon_infusion", - "position": 2, - "ingredient_id": "cinnamon_infusion", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 295, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_powder", - "position": 4, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 92, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_dextrose", - "position": 5, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 205, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_invert_sugar", - "position": 6, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 87, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_ice_cream_stabilizer", - "position": 8, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Ice Cream:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk, infusion, and cream. With an immersion blender, blend in the milk powder and dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat until warm, 105°F (40°C); whisk in the sugars mixed with the stabilizer and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Cinnamon Infusion:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "The ratio for cold infusion is 100 g (3.5 oz) of cinnamon sticks per liter of cold water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Break up the sticks and put the bits in a blender. Add the cold water and blend until well ground.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Transfer to airtight containers and store in the refrigerator for a minimum of 5 days or up to several weeks if a stronger infusion is desired. Strain through a fine-mesh strainer before use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "cinnamon_roll", "schema_version": 2, @@ -48380,5251 +14923,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "classic_caramel_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Classic Caramel Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1800, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe makes a classic caramel sauce with a subtle buttery flavor rounded out with hints of salt and vanilla. Serve at room temperature or warm.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 920, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_corn_syrup", - "position": 3, - "ingredient_id": "corn_syrup", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 475, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¾ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make an amber caramel with the sugar, water, and corn syrup.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Meanwhile, heat the cream, butter, and salt until the butter melts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the cream/butter mixture into the caramel in several additions until emulsified, followed by the extract.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "classic_chocolate_truffle_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Classic Chocolate Truffle Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1545, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_invert_sugar", - "position": 2, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_dark", - "position": 4, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 680, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_liqueur", - "position": 6, - "ingredient_id": "liqueur", - "subrecipe_id": null, - "quantity": 114, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Pour the hot mixture over the chocolate. Allow to stand for one minute, then emulsify, from the center out, until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the softened butter and emulsify until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gradually pour in the liqueur, stirring continuously to maintain an emulsion.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap and allow to set up at room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pipe the ganache into rounds that are as spherical as possible, then refrigerate until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Roll the ganache into spheres by hand and chill again. At this point, the rolled spheres may be refrigerated for several days before being finished.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Allow the spheres to temper from the refrigerator before coating twice in tempered chocolate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "After the second coating, roll the truffles in sifted cocoa powder before the chocolate sets. Once set, sift the excess cocoa powder off the finished truffles.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Use a good quality liqueur like Cognac, Armagnac, Grand Marnier or dark rum.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "classic_creme_brulee", - "schema_version": 2, - "save_version": 6, - "title": "Classic Crème Brûlée", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1250, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Crème brûlée has a shelf life up to 3 days. For a less rich custard, substitute some of the heavy cream for whole milk.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, first weight of sugar, and vanilla beans to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixing bowl, whisk together the egg yolks, second weight of sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper the hot cream into the egg yolk mixture until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove excess air bubbles from the top of the crème brûlée custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "classic_ice_cream_sandwich_cookie", - "schema_version": 2, - "save_version": 6, - "title": "Classic Ice Cream Sandwich Cookie", - "summary": "Yield: two half sheet pans", - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1040, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two half sheet pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_dark", - "position": 2, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 68, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_coffee_extract", - "position": 5, - "ingredient_id": "coffee_extract", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cocoa_powder", - "position": 8, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 24, - "unit_id": "gram", - "percentage": 9.6, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_powder", - "position": 9, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the butter and chocolate over a water bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the sugar into the melted butter/chocolate mixture to combine, followed by the eggs and extracts until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sifted dry ingredients into the wet ingredients until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread the batter onto two half sheet pans and bake at 350°F (177°C) until dry to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "sheet_pan", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Line a frozen, flat half sheet pan with plastic wrap. Spread softened ice cream onto the pan and level smooth. Freeze until firm.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Unmold the frozen ice cream onto one of the cookies, then top with the other. Wrap and freeze until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Unwrap sandwich and using a serrated knife, cut into rectangles, wiping off blade between cuts.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "classic_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Classic Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1794, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 113.5, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_superfine_sugar", - "position": 2, - "ingredient_id": "superfine_sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.25, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and vanilla bean seeds.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the eggs and cream to blend and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately fold the sifted dry and wet ingredients into the butter mixture in several additions.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "classic_puff_pastry", - "schema_version": 2, - "save_version": 6, - "title": "Classic Puff Pastry", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1345, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The butter packet should be the same consistency as the dough packet when you begin assembly as this facilitates smooth and even lamination.\",\"Acid like vinegar helps relax gluten, making the dough more pliable.\",\"Puff pastry can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough_packet_detrempe", - "position": 1, - "name": "Dough Packet (Détrempe)", - "notes_json": "[]" - }, - { - "id": "butter_packet_beurrage", - "position": 2, - "name": "Butter Packet (Beurrage)", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "butter_packet_beurrage", - "id": "line_06_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": "cold & softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 15, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": 52, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_05_white_vinegar", - "position": 5, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Dough Packet:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, combine the flour, salt, and butter. Mix until the butter has coated the flour and is no longer visible.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the water and vinegar. Add it to the dry ingredients and mix to form a dough. Do not over mix, but be sure there are no dry spots of flour in the dough.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pat the dough packet into a square, wrap in plastic wrap, and refrigerate for at least 1 hour.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Butter Packet:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Soften the butter to the same consistency as the rested and chilled dough packet.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Assembly:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "On a floured work surface, roll the corners of the dough packet into flaps.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Put the butter packet into the center of the dough packet and fold the flaps to completely cover the butter. Seal in the dough package.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Give the dough 2 letter turns rolling the dough ⅜-inch thick letting the dough rest in the refrigerator wrapped in plastic wrap for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Repeat 2 more letter turns letting the dough rest in the refrigerator wrapped in plastic wrap for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Perform the last 2 letter turns for a total of 6.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "classic_yellow_butter_cake", - "schema_version": 2, - "save_version": 6, - "title": "Classic Yellow Butter Cake", - "summary": "Yield: two 10-inch cake pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1747, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 10-inch cake pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_yolk", - "position": 1, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_extract", - "position": 3, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_almond_extract", - "position": 4, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 6.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.56, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": 56.67, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_milk_whole", - "position": 10, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 60, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the egg yolks, first weight of milk, and extracts until smooth; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, blend the sifted dry ingredients until aerated.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the softened butter and second weight of milk and mix for about 2 minutes on medium speed, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gradually add the egg yolk mixture in several additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Mix the batter for 30 seconds on medium speed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "clear_vanilla_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Clear Vanilla Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1250, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_xanthan_gum", - "position": 4, - "ingredient_id": "xanthan_gum", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In saucepan, bring the water, sugar, and vanilla beans to a boil. Set aside to infuse until room temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the vanilla syrup in a blender. With the blender on low speed, sprinkle in the xanthan gum then blend on high speed for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cool the sauce down immediately over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove the bubbles in the sauce using a vacuum packaging machine.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cobbler_dough", - "schema_version": 2, - "save_version": 6, - "title": "Cobbler Dough", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1045, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 265, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_cake", - "position": 2, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 265, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 24.53, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.89, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.94, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 32.08, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_heavy_cream", - "position": 7, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 37.74, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the flours, sugar, baking powder, salt, and butter until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the cream and mix just until a dough is formed; do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Roll the dough to about ¼-inch thick and cut out desired sized discs with a cookie cutter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Overlap the discs on top of your favorite prepared fruit filling to make a \"cobblestone\" look.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350ºF (177ºC) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1480, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_coconut_puree", - "position": 4, - "ingredient_id": "coconut_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_whole", - "position": 5, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the puree, milk, and first weight of sugar to a boil. Meanwhile, whisk the egg yolks, second weight of sugar, and salt until light and thick. Temper ⅓ of the coconut mixture into the yolk mixture. Return everything back to the saucepan and cook on mediumlow heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin, and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled coconut crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 556, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cocoa_butter", - "position": 2, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_coconut_puree", - "position": 3, - "ingredient_id": "coconut_puree", - "subrecipe_id": null, - "quantity": 322, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_coconut", - "position": 5, - "ingredient_id": "coconut", - "subrecipe_id": null, - "quantity": 72, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and cocoa butter in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the puree and cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the hot puree mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the toasted coconut.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_chiboust", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Chiboust", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1670, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_coconut_milk", - "position": 3, - "ingredient_id": "coconut_milk", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cornstarch", - "position": 5, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_water", - "position": 8, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whites", - "position": 9, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a pastry cream with the milk, egg yolks, cornstarch, and the first weight of sugar. Whisk the bloomed and drained gelatin into the hot pastry cream and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the finished pastry cream in a bowl large enough to accommodate the entire recipe. Press plastic wrap on the surface to prevent a skin from forming and set aside to cool until warm. Alternatively, in a mixer fitted with a paddle attachment, mix the hot pastry cream until warm.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare an Italian meringue with the second weight of sugar, water, and egg whites. Whip until warm, 120°F (49ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sacrifice ¼ of the warm meringue into the warm pastry cream and whisk until the smooth. Fold the rest of the meringue into the lightened pastry cream until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use immediately; chill or freeze until set.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_creme_mousseline", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Crème Mousseline", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2850, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"See the Chef's Notes in the Basic Crème Mousseline recipe on page 179.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pastry_cream", - "position": 1, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 1500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_coconut_milk", - "position": 2, - "ingredient_id": "coconut_milk", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_dark_rum", - "position": 3, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter_or_buttercream", - "position": 4, - "ingredient_id": "butter_or_buttercream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_desiccated_coconut", - "position": 5, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare the pastry cream on page 218.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the pastry cream, milk, and rum until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the butter or buttercream and mix until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Mix in the coconut.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_frangipane", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Frangipane", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1340, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_cream", - "position": 1, - "ingredient_id": "almond_cream", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_pastry_cream", - "position": 2, - "ingredient_id": "pastry_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_dark_rum", - "position": 3, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_coconut", - "position": 4, - "ingredient_id": "coconut", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "shredded", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the creams and rum until light, fluffy, and smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix in the shredded coconut until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "公", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_haystacks", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Haystacks", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 800, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_desiccated_coconut", - "position": 4, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_orange_zest", - "position": 6, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Gently melt the butter and sugar in a saucepan until the sugar is dissolved.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Remove from the heat and whisk in the eggs until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the coconut, salt, and zest.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Return to the heat and cook, stirring continuously, until the mixture pulls away from the pan.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Let cool to room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pipe out mound shaped kisses with a star tip, or use a small ice cream scoop to scoop round balls.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 400°F (204°C) until lightly browned.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Brush with simple syrup as soon as they come out of the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2430, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_coconut_puree", - "position": 4, - "ingredient_id": "coconut_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_tapioca", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Tapioca", - "summary": "This dessert looks like a bowl full of translucent bubbles and has the texture of a light cream soup.", - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 3500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The tapioca has a shelf life of 3 days and benefits from a night in the refrigerator; the resting time leaves it even more supple and silky.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_tapioca_pearls", - "position": 1, - "ingredient_id": "tapioca_pearls", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "small", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_tapioca_pearls", - "position": 2, - "ingredient_id": "tapioca_pearls", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "large", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 2440, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 435, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_coconut_milk", - "position": 5, - "ingredient_id": "coconut_milk", - "subrecipe_id": null, - "quantity": 618, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_heavy_cream", - "position": 6, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 464, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Soak the tapioca pearls separately in cold water for 4 hours, or overnight in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the hydrated pearls, keeping them separate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the whole milk and sugar to a boil. Divide into 2 saucepans.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Simmer the pearls in separate saucepans, stirring continuously until translucent and soft. Do not allow the mixtures to boil. The small pearls will cook faster than the large ones.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Combine the cooked pearls into one container.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "In a saucepan, bring the coconut milk and cream to a boil. Pour over the cooked pearls, stirring to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Chill over an ice bath, stirring periodically as it cools. The stirring helps to prevent the pearls from sticking to each other while chilling.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coconut_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Coconut Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_confectioners_sugar", - "position": 1, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sifted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_desiccated_coconut", - "position": 3, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_orange_zest", - "position": 4, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the sifted sugar, eggs, coconut, and zest until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually whisk in the warm butter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coffee_cake", - "schema_version": 2, - "save_version": 6, - "title": "Coffee Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 3080, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 45.4, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 720, - "unit_id": "gram", - "percentage": 72, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 8, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.5, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_milk_whole", - "position": 10, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 355, - "unit_id": "gram", - "percentage": 35.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_vanilla_extract", - "position": 11, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugars, and zest.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately add the sifted dry and wet ingredients, beginning and ending with the dry.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread the batter onto a parchment-lined half sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Top the batter with 1.6 kg (3 lb 8.4 oz) of streusel on page 38.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coffee_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Coffee Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_coffee_beans", - "position": 1, - "ingredient_id": "coffee_beans", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 820, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_powder", - "position": 5, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_dextrose", - "position": 6, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_invert_sugar", - "position": 9, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_ice_cream_stabilizer", - "position": 11, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Lightly roast the coffee beans until fragrant, then coarsely grind in a food processor.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, bring the milk, cream, ground coffee beans, and vanilla bean to a scald. Set aside to infuse until cool.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the coffee infused milk through a fine-mesh strainer, then rescale to the original weight with additional milk and cream.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "With an immersion blender, blend the milk powder and dextrose into the coffee infused milk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Heat until warm, 105°F (40°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Meanwhile, whisk together the egg yolks and the first weight of granulated sugar. Add the egg yolk mixture, invert sugar, second weight of sugar mixed with with the stabilizer, and salt to the warm milk mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "coffee_sabayon_cream", - "schema_version": 2, - "save_version": 6, - "title": "Coffee Sabayon Cream", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1151, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 13, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_coffee", - "position": 6, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 88, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_coffee_liquor", - "position": 7, - "ingredient_id": "coffee_liquor", - "subrecipe_id": null, - "quantity": 88, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cr_me_anglaise", - "position": 8, - "ingredient_id": "cr_me_anglaise", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_coffee_extract", - "position": 9, - "ingredient_id": "coffee_extract", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water. The gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the egg yolks, sugar, coffee, and liquor over a water bath until thickened and a ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the bloomed and drained gelatin into the hot sabayon to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whisk the sabayon over an ice bath until about 65°F (18°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the crème anglaise and extract into the sabayon, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "corn_bread", - "schema_version": 2, - "save_version": 6, - "title": "Corn Bread", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2500, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\",\"This is a base recipe that can be customized to one's tastes. You can reduce the sugar and take it in a more savory direction if desired. Some suggestions for additions include: herbs, spices, chili paste, sautéed onions, peppers, garlic, and grilled or sautéed corn kernels.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 67.16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 44.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_corn_oil", - "position": 3, - "ingredient_id": "corn_oil", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 44.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 670, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_powder", - "position": 5, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 5.97, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.49, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cornmeal", - "position": 7, - "ingredient_id": "cornmeal", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 25.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_milk_whole", - "position": 8, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 560, - "unit_id": "gram", - "percentage": 83.58, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the sugar and eggs until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the oil.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately add the sifted dry ingredients with the milk, beginning and ending with the dry.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "corn_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Corn Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2657, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 36.38, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 284, - "unit_id": "gram", - "percentage": 45.51, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 29, - "unit_id": "gram", - "percentage": 4.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_honey", - "position": 4, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 86, - "unit_id": "gram", - "percentage": 13.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sour_cream", - "position": 5, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 36.38, - "basis_member": 0, - "optional": 0, - "notes": "room temperature", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_buttermilk", - "position": 6, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 242, - "unit_id": "gram", - "percentage": 38.78, - "basis_member": 0, - "optional": 0, - "notes": "room temperature", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_corn_oil", - "position": 7, - "ingredient_id": "corn_oil", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 27.24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whole", - "position": 8, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 24.04, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 27.24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_flour_all_purpose", - "position": 10, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 624, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_cornmeal", - "position": 11, - "ingredient_id": "cornmeal", - "subrecipe_id": null, - "quantity": 398, - "unit_id": "gram", - "percentage": 63.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_baking_powder", - "position": 12, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 43, - "unit_id": "gram", - "percentage": 6.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_baking_soda", - "position": 13, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.12, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugars, and honey.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sour cream and mix until aerated.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the buttermilk, oil, whole eggs, and yolks until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Alternately fold the sifted dry and wet ingredients, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350ºF (177ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cornmeal_pate_sable", - "schema_version": 2, - "save_version": 6, - "title": "Cornmeal Pâte Sablé", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1115, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This dough is good for baked fruit tarts as well as cookies.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 151.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 26.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_honey", - "position": 5, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 13.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_bread", - "position": 7, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cornmeal", - "position": 8, - "ingredient_id": "cornmeal", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and zest.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, followed by the honey and extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the flour, cornmeal, and salt and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cornmeal_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Cornmeal Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1936, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 548, - "unit_id": "gram", - "percentage": 130.48, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": 9.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 107.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cornmeal", - "position": 6, - "ingredient_id": "cornmeal", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.19, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_milk_whole", - "position": 9, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 10.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_vanilla_extract", - "position": 10, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_rosewater_or_orange_blossom_water", - "position": 11, - "ingredient_id": "rosewater_or_orange_blossom_water", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.19, - "basis_member": 0, - "optional": 0, - "notes": "optional", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time; scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately fold the sifted dry and wet ingredients into the butter mixture in several additions.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "country_cream", - "schema_version": 2, - "save_version": 6, - "title": "Country Cream", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1065, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_greek_yogurt", - "position": 1, - "ingredient_id": "greek_yogurt", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cr_me_fra_che", - "position": 2, - "ingredient_id": "cr_me_fra_che", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_mascarpone", - "position": 3, - "ingredient_id": "mascarpone", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sour_cream", - "position": 4, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_confectioners_sugar", - "position": 6, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lemon_zest", - "position": 8, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk all of the ingredients together to medium peaks.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Refrigerate until ready for use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "crab_rangoon", "schema_version": 2, @@ -53855,464 +15153,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "cranberry_granite", - "schema_version": 2, - "save_version": 6, - "title": "Cranberry Granité", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 1075, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cinnamon_stick", - "position": 4, - "ingredient_id": "cinnamon_stick", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cranberries", - "position": 5, - "ingredient_id": "cranberries", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_gelatin_sheet", - "position": 6, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_orange_zest", - "position": 8, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_orange_juice", - "position": 9, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_lemon_juice", - "position": 10, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the water, sugar, vanilla, and cinnamon in a saucepan; simmer to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the cranberries and gently cook for several minutes until they burst.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cool over an ice bath; remove the vanilla bean and cinnamon stick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Puree in a blender and strain through a fine-mesh strainer, discarding the solids.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water. Drain and gently melt with 2 tablespoons of the strained puree.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Whisk the melted gelatin, puree, zest, and juices together until blended.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Measure and adjust the °Brix between 15°-20° depending on your taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "cream_cheese_flan", - "schema_version": 2, - "save_version": 6, - "title": "Cream Cheese Flan", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1405, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cream_cheese", - "position": 1, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 228, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_condensed_milk", - "position": 2, - "ingredient_id": "condensed_milk", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_evaporated_milk", - "position": 5, - "ingredient_id": "evaporated_milk", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_milk_whole", - "position": 6, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Coat the bottom of desired molds with caramel slackened with a touch of warm water and set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix the cream cheese with the condensed milk until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Separately, whisk together the whole eggs, yolks, milks, extract, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the milk/egg mixture to the cream cheese mixture in several additions and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour the custard over the caramelized sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 275°F (135ºC) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "cream_cheese_icing", "schema_version": 2, @@ -54645,223 +15485,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "cream_cheese_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Cream Cheese Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1867, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 66.67, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 284, - "unit_id": "gram", - "percentage": 55.69, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_cheese", - "position": 3, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 68.63, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_whole", - "position": 5, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 13, - "unit_id": "gram", - "percentage": 2.55, - "basis_member": 0, - "optional": 0, - "notes": "2½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 510, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 3.92, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.96, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the softened cream cheese and mix until smooth and fluffy, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the eggs, milk, and extract to blend and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Alternately fold the sifted dry and wet ingredients into the butter mixture in 3 additions.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "creamed_berry_muffin", "schema_version": 2, @@ -55364,2150 +15987,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "creme_anglaise_buttercream", - "schema_version": 2, - "save_version": 6, - "title": "Crème Anglaise Buttercream", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2035, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"One of the advantages of a crème anglaise based buttercream is that it allows flavoring via infusion.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_butter", - "position": 10, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a very thick crème anglaise with the first 5 ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain through a fine-mesh strainer and chill over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Prepare an Italian meringue with the next 4 ingredients; whisk until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the butter into the meringue in several additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the cooled crème anglaise to the meringue buttercream.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "creme_anglaise_chocolate_buttercream", - "schema_version": 2, - "save_version": 6, - "title": "Crème Anglaise Chocolate Buttercream", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2528, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 680, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_coffee", - "position": 2, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 236, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 304, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and emulsify with the coffee, cool until tepid.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the milk and ½ of the sugar to a boil. Meanwhile, whisk the egg yolks, the other ½ of the sugar, and salt until light and thick. Temper the egg mixture with the hot milk and return everything back to the pan. Cook on medium-low heat until very thick, but not scrambled.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the mixture through a fine-mesh strainer into a mixer fitted with the whisk attachment and whisk until cool.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the tempered butter to the whipping crème anglaise and whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the tepid coffee ganache to the buttercream and whisk until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "creme_anglaise_sous_vide_method", - "schema_version": 2, - "save_version": 6, - "title": "Crème Anglaise Sous-Vide Method", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1380, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Make sure the water bath has reached 180ºF (82°C) before adding the vacuum bags. The water temperature will drop when the bags are added. Let the temperature rise back to 180ºF (82°C) before setting the timer.\",\"Crème anglaise has a shelf-life up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Puree all of the ingredients together in a blender until smooth and chill until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Seal the mixture in vacuum bags.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cook the vacuum packed crème anglaise in a covered water bath using an immersion circulator set to 180°F (82°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cook the bags for 15 minutes for ice cream base or 25 minutes for sauce.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove the bags and shake them a few times to emulsify the mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cool the crème anglaise down immediately over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Refrigerate until ready to use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "creme_fraiche_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Crème Fraîche Panna Cotta", - "summary": "Yield: twelve 4 oz molds", - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1680, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twelve 4 oz molds\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_condensed_milk", - "position": 3, - "ingredient_id": "condensed_milk", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cr_me_fra_che", - "position": 4, - "ingredient_id": "cr_me_fra_che", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in the cold milk; the gelatin will absorb the majority of the milk.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the condensed milk with the crème fraîche until smooth. Add the cream, extract, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm the milk until the gelatin is dissolved.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir the warm milk mixture into the crème fraîche mixture and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "crepe_batter", - "schema_version": 2, - "save_version": 6, - "title": "Crepe Batter", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1045, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": 112, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Procedure — By Hand:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the milk, cream, vanilla bean seeds, and eggs until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the dry ingredients in a bowl large enough to accommodate the whole recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk ½ of the liquid mixture into the dry ingredients until smooth. Whisk in the rest of the liquid until the batter is smooth again.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain the mixture through a fine-mesh strainer and let rest in the refrigerator for 30 minutes before using.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Procedure — By Food Processor:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Whisk the milk, cream, vanilla bean seed, and eggs until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Put the sifted dry ingredients in the food processor. With the machine on, pour the liquid ingredients through the hole and process until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Strain the mixture through a fine-mesh strainer and let rest in the refrigerator for 30 minutes before using.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "crepe_suzette_caramel_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Crêpe Suzette Caramel Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 2166, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This sauce is meant to be reduced with the crepes à la minute until nappe.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_orange_juice", - "position": 2, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_liqueur", - "position": 3, - "ingredient_id": "orange_liqueur", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a medium-amber caramel with the sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Deglaze the caramel with the juice, followed by the liqueur.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Emulsify the butter into the caramel sauce with an immersion blender until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "crisp_dacquoise", - "schema_version": 2, - "save_version": 6, - "title": "Crisp Dacquoise", - "summary": "Yield: three 9-inch discs", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 652, - "yield_unit_id": "gram", - "yield_servings": 3, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: three 9-inch discs\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_nut_flour", - "position": 1, - "ingredient_id": "nut_flour", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 213, - "unit_id": "gram", - "percentage": 125.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.47, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 105.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cream_of_tartar", - "position": 6, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 1.18, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gently fold the sifted dry ingredients into the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pipe immediately.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 200ºF (93ºC) until dry and crisp with little to no color.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "crisp_flatbread", - "schema_version": 2, - "save_version": 6, - "title": "Crisp Flatbread", - "summary": "Yield: seven full sheet pans", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1655, - "yield_unit_id": "gram", - "yield_servings": 7, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: seven full sheet pans\",\"Can be stored in airtight containers for up to 2 days .\",\"Suggested toppings include a blend of grated parmesan cheese, sesame, poppy, and caraway seeds.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 946, - "unit_id": "gram", - "percentage": 150.64, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": 4.46, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": 3.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_yeast_fresh", - "position": 4, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.39, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 95.54, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": 3.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_canola_oil", - "position": 7, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": 3.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the first four ingredients together in a 5-quart mixing bowl. Cover with plastic wrap and allow to rise at room temperature until 3-4 times original volume (about 20 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, mix in the second weight of flour and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "With the mixer running, gradually stream in the oil and continue to mix until the batter is smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour into a tall, 6-8 quart plastic container. Cover and refrigerate overnight, or up to 18 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Emulsify the batter with an immersion blender or in a mixer fitted with a whisk attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "With an off-set spatula, evenly spread one 8-oz ladle of batter on a full sheet pan lined with a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Sprinkle the top of the batter with desired toppings.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 300°F (149°C) until evenly browned (about 18-20 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "crispy_hazelnut_semifreddo", - "schema_version": 2, - "save_version": 6, - "title": "Crispy Hazelnut Semifreddo", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 6186.25, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The croquant can be stored in airtight containers for up to 2 weeks.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "parfait", - "position": 1, - "name": "Parfait", - "notes_json": "[]" - }, - { - "id": "croquant", - "position": 2, - "name": "Croquant", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "croquant", - "id": "line_09_sliced_almonds", - "position": 1, - "ingredient_id": "sliced_almonds", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "croquant", - "id": "line_10_hazelnut", - "position": 2, - "ingredient_id": "hazelnut", - "subrecipe_id": null, - "quantity": 570, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "croquant", - "id": "line_11_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 114, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "croquant", - "id": "line_12_simple_syrup", - "position": 4, - "ingredient_id": "simple_syrup", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "croquant", - "id": "line_13_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "croquant", - "id": "line_14_total_croquant_weight", - "position": 6, - "ingredient_id": "total_croquant_weight", - "subrecipe_id": null, - "quantity": 1100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 67, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_04_praline_paste", - "position": 4, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 267, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_05_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 167, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_07_croquant", - "position": 7, - "ingredient_id": "croquant", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "parfait", - "id": "line_08_total_parfait_weight", - "position": 8, - "ingredient_id": "total_parfait_weight", - "subrecipe_id": null, - "quantity": 1930, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Parfait:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a pâte a bombe with the first weight of sugar and egg yolks. Whip until cool, then add the paste and whip until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the egg whites and second weight of sugar; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the meringue and ½ of the croquant into the pâte a bombe.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream and the remaining croquant into that.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Mold as desired and freeze immediately.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Croquant:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Toss the sliced almonds and chopped hazelnuts with the melted butter, simple syrup and salt to coat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Spread the nuts out evenly onto a parchment-lined sheet pan or a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Roast the nuts at 325°F (163°C), tossing several times during the roasting process.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "oven", - "thermometer" - ] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Allow to cool, then break up into pieces.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "croissant_dough", - "schema_version": 2, - "save_version": 6, - "title": "Croissant Dough", - "summary": "Yield: approximately twenty-two croissants", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 3674, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: approximately twenty-two croissants\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough_packet_detrempe", - "position": 1, - "name": "Dough Packet (Détrempe)", - "notes_json": "[]" - }, - { - "id": "butter_packet_beurrage", - "position": 2, - "name": "Butter Packet (Beurrage)", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "butter_packet_beurrage", - "id": "line_10_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 60.53, - "basis_member": 0, - "optional": 0, - "notes": "cold & softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "butter_packet_beurrage", - "id": "line_11_total_paton_weight", - "position": 2, - "ingredient_id": "total_paton_weight", - "subrecipe_id": null, - "quantity": 1837, - "unit_id": "gram", - "percentage": 244.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 66.67, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_02_flour_cake", - "position": 2, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": 5.07, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": 2.27, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_06_yeast_fresh", - "position": 6, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": 5.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_07_milk_powder", - "position": 7, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": 5.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_08_water", - "position": 8, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 30.27, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_09_milk_whole", - "position": 9, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 26.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the dough packet ingredients until combined. Switch to a hook attachment and mix on medium speed for about 2-3 minutes, or until a smooth, slightly sticky dough comes together.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Shape the dough and place in an oiled bowl, cover with plastic wrap, and let it bulk proof for 60-90 minutes at room temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Roll the dough into a rectangle about ⅜-inch thick, wrap in plastic wrap and freeze for about 30 minutes, or until firm but not frozen. Alternatively, you can refrigerate the dough for 8 hours or overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Soften the butter packet until it is pliable, but still cold. Shape the butter into a square ½ the size of the rectangle of dough packet. The butter packet should be of similar consistency as the dough packet when assembling them together.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Place the butter inside the dough and fold over to make a package.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Give the paton 2 double turns, resting the dough for 30 minutes in between each turn.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Roll the croissant dough to ¼-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "With a sharp knife or croissant cutter, cut 8-inch long x 4-inch wide triangles out of the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Shape, egg wash, proof, and egg wash a second time.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Bake at 375°F (191°C) for the first ½ of the baking, then lower the oven to 350°F (177°C) and continue baking until deep golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "cuban_mustard_mayo", "schema_version": 2, @@ -57583,425 +16062,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "danish_pastry_dough", - "schema_version": 2, - "save_version": 6, - "title": "Danish Pastry Dough", - "summary": "Yield: twenty-four pastries", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2810.25, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty-four pastries\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough_packet_detrempe", - "position": 1, - "name": "Dough Packet (Détrempe)", - "notes_json": "[]" - }, - { - "id": "butter_packet_beurrage", - "position": 2, - "name": "Butter Packet (Beurrage)", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "butter_packet_beurrage", - "id": "line_11_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 59.96, - "basis_member": 0, - "optional": 0, - "notes": "cold & softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "butter_packet_beurrage", - "id": "line_12_total_paton_weight", - "position": 2, - "ingredient_id": "total_paton_weight", - "subrecipe_id": null, - "quantity": 1400, - "unit_id": "gram", - "percentage": 246.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_01_yeast_fresh", - "position": 1, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 5.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_02_milk_powder", - "position": 2, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 5.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 237, - "unit_id": "gram", - "percentage": 41.8, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_04_flour_bread", - "position": 4, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 59.96, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 40.04, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 8.82, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_08_cardamom", - "position": 8, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.22, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 8.82, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_10_egg_whole", - "position": 10, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 17.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Dissolve the yeast and milk powder into the cold water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a hook attachment, mix the dough packet (détrempe) ingredients to combine; do not over develop the gluten at this point. The dough should be slightly shaggy, with no dry spots.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pat the dough into a square, wrap in plastic wrap, and refrigerate for at least 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Soften the butter packet (beurrage) to a similar consistency as the chilled détrempe.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Roll the dough into a rectangle approximately ½-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Place the softened butter packet on one half of the dough and fold over to make a paton; be sure to seal the edges well.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Give the dough 3 single turns, rolling the dough to ¼-inch thick. Let rest for 20-30 minutes in between each turn.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "G", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "dark_chocolate_praline_feuilletine", - "schema_version": 2, - "save_version": 6, - "title": "Dark Chocolate Praline Feuilletine", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 772, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cocoa_butter", - "position": 1, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_dark", - "position": 2, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 137, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_praline_paste", - "position": 3, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_feuilletine", - "position": 5, - "ingredient_id": "feuilletine", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the cocoa butter over a water bath, add the chocolate and melt together, stirring until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the chocolate mixture with the praline paste and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the feuilletine until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "dark_espresso_brownie", "schema_version": 2, @@ -58269,400 +16329,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "dessert_wine_sabayon", - "schema_version": 2, - "save_version": 6, - "title": "Dessert Wine Sabayon", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1035, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Any kind of dessert wine can be used for this recipe. Wines like Riesling, Sauternes, or Muscat work especially well because they have a concentrated flavor.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 345, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_dessert_wine", - "position": 4, - "ingredient_id": "dessert_wine", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks and set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks, sugar, and wine over a water bath until thickened and a ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the whipped cream into the sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "devil_s_food_cake", - "schema_version": 2, - "save_version": 6, - "title": "Devil's Food Cake", - "summary": "Yield: one half sheet pan or one 10-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1630, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan or one 10-inch cake pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cocoa_powder", - "position": 2, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 31.58, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_soda", - "position": 3, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "1 tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": 73.68, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 157.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whole", - "position": 8, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 70.18, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 7.02, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_buttermilk", - "position": 10, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 63.16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_coffee", - "position": 11, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 63.16, - "basis_member": 0, - "optional": 0, - "notes": "cooled", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_vanilla_extract", - "position": 12, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients together; set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar until light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gradually add the eggs, scraping down the sides of the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Alternately add the dry and wet ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177ºC) until the cake springs back to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "dinner_rolls", "schema_version": 2, @@ -58893,218 +16559,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "dog_biscuits", - "schema_version": 2, - "save_version": 6, - "title": "Dog Biscuits", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1440, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Flax seed oil and wheat germ should be refrigerated to prevent rancidity.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 22.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flax_seed_oil", - "position": 2, - "ingredient_id": "flax_seed_oil", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 29.41, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_beef_or_chicken_stock", - "position": 3, - "ingredient_id": "beef_or_chicken_stock", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 35.29, - "basis_member": 0, - "optional": 0, - "notes": "low-sodium", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_powder", - "position": 4, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 12.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_whole_wheat", - "position": 5, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_bread", - "position": 6, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_wheat_germ", - "position": 7, - "ingredient_id": "wheat_germ", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": 8.09, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_brown_sugar", - "position": 8, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 4.41, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix the eggs with the flax seed oil.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Dissolve the milk powder into the stock.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a paddle attachment, mix the wet ingredients into the sifted dry until well combined.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Roll to ½-inch thick, cut with a dog bone cookie cutter, and brush with egg wash before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 300°F (149°C) until golden brown and completely dry throughout.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Store in an airtight container for up to 2 weeks.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "dominos_cheddar_cheese_blend", "schema_version": 2, @@ -60702,296 +18156,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "double_chocolate_chip_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Double Chocolate Chip Cookies", - "summary": "Yield: thirty-eight 57 g (2 oz) cookies", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2175, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: thirty-eight 57 g (2 oz) cookies\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.33, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cocoa_powder", - "position": 8, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 60, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.33, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_soda", - "position": 10, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.33, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_dark_chocolate_chips", - "position": 11, - "ingredient_id": "dark_chocolate_chips", - "subrecipe_id": null, - "quantity": 168, - "unit_id": "gram", - "percentage": 56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_milk_chocolate_chips", - "position": 12, - "ingredient_id": "milk_chocolate_chips", - "subrecipe_id": null, - "quantity": 168, - "unit_id": "gram", - "percentage": 56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_white_chocolate_chips", - "position": 13, - "ingredient_id": "white_chocolate_chips", - "subrecipe_id": null, - "quantity": 168, - "unit_id": "gram", - "percentage": 56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_pecan", - "position": 14, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 60, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the eggs, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the chocolate chips and chopped nuts. Mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 275°F (135°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "egg_noodle", "schema_version": 2, @@ -61217,223 +18381,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "elderflower_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Elderflower Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2610, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_elderflower_syrup", - "position": 4, - "ingredient_id": "elderflower_syrup", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_champagne", - "position": 5, - "ingredient_id": "champagne", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the elderflower syrup, champagne, juice, and egg yolks over a water bath until light and thickened. Add the bloomed and drained gelatin to the hot mixture to dissolve, then cool down over an ice bath until 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a Swiss meringue with the egg whites and sugar; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sacrifice a small amount of the meringue into the cooled elderflower mixture, then fold in the rest of the meringue, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "english_muffin", "schema_version": 2, @@ -61642,4043 +18589,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "english_muffins", - "schema_version": 2, - "save_version": 6, - "title": "English Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1610, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_sponge", - "position": 1, - "ingredient_id": "sponge", - "subrecipe_id": null, - "quantity": 610, - "unit_id": "gram", - "percentage": 70.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 46.51, - "basis_member": 0, - "optional": 0, - "notes": "room temperature", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 3.49, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 560, - "unit_id": "gram", - "percentage": 65.12, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.16, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_yeast_fresh", - "position": 1, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 6.98, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 29.07, - "basis_member": 0, - "optional": 0, - "notes": "room temperature", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 34.88, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sponge:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the yeast, water, and flour until blended. Cover and allow to ferment at room temperature for 3-6 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a dough hook, combine the sponge, milk, butter, and flour and mix for 2-3 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the salt and mix until gluten is developed and a \"window\" is achieved.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Place the dough in an oiled bowl, cover, and bulk ferment for 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Turn, fold and flip the dough over in the bowl. Ferment for another 30-40 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Turn the dough out onto a well-floured bench. Pat or roll the dough until it is ½-inch thick. Cut the muffins with round cutters.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Prepare a sauté pan with ¼-inch of vegetable oil and butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Pan fry the muffins, cooking each side until nicely browned. Remove from the pan onto a cornmeal-lined tray, then transfer onto parchment-lined sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Bake the cornmeal-coated muffins at 350°F (177°C) for 10-15 minutes, or until cooked through in the center. Cool on a wire rack.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "espresso_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Espresso Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 303, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_milk", - "position": 2, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_espresso_beans", - "position": 3, - "ingredient_id": "espresso_beans", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 477, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_coffee_liqueur", - "position": 6, - "ingredient_id": "coffee_liqueur", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the chocolates in a bowl large enough to accommodate the entire recipe; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Dry-roast the espresso beans in a sauté pan over medium heat until aromatic, then coarsely crush the beans.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the cream and crushed espresso beans to a boil; set aside to infuse for 30-60 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the infused cream through a fine-mesh strainer, then rescale to the original weight.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bring the infused cream back to a boil, then pour over the chocolates. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir in the softened butter, followed by the liqueur.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "espresso_granite", - "schema_version": 2, - "save_version": 6, - "title": "Espresso Granité", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1440, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_coffee", - "position": 3, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh & hot", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_instant_espresso_powder", - "position": 4, - "ingredient_id": "instant_espresso_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_simple_syrup", - "position": 5, - "ingredient_id": "simple_syrup", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the espresso powder and bloomed gelatin into the hot coffee, followed by the simple syrup.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Measure and adjust the °Brix between 17°-20° depending on the coffee and your taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "espresso_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Espresso Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 95, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_espresso_beans", - "position": 2, - "ingredient_id": "espresso_beans", - "subrecipe_id": null, - "quantity": 95, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1013, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_gelatin_sheet", - "position": 6, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_coffee_extract", - "position": 11, - "ingredient_id": "coffee_extract", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a dry caramel with the sugar. Add the espresso beans to coat and spread out onto a silicone baking mat or parchment paper to cool. Once cool, grind the caramel coated beans in a food processor until coarsely ground.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "sheet_pan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the milk to a scald with the ground mixture and the vanilla bean. Set aside to steep for 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the espresso milk through a fine-mesh strainer, then rescale to the original weight with additional milk.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Make a very thick crème anglaise with the espresso milk, second weight of sugar, egg yolks, and salt by cooking it on low heat and stirring continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Strain through a fine-mesh strainer into a mixer fitted with a whisk attachment. Whip until cool, then add the extract.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Fold the whipped cream into the cooled espresso crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "espresso_white_chocolate_chip_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Espresso White Chocolate Chip Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1590, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 60.53, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 178, - "unit_id": "gram", - "percentage": 47.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 178, - "unit_id": "gram", - "percentage": 47.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 10.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 26.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 3.73, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_instant_espresso_powder", - "position": 7, - "ingredient_id": "instant_espresso_powder", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.8, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_all_purpose", - "position": 8, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": 4.53, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_soda", - "position": 10, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.6, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_white_chocolate_chips", - "position": 11, - "ingredient_id": "white_chocolate_chips", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 121.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the eggs, followed by the extract, scraping down the bowl as necessary. Add the espresso powder and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the chocolate chips and mix until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 275°F (135ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "famous_mignano_bar", - "schema_version": 2, - "save_version": 6, - "title": "Famous \"Mignano Bar\"", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1240, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_graham_cracker_crumbs", - "position": 1, - "ingredient_id": "graham_cracker_crumbs", - "subrecipe_id": null, - "quantity": 649, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 266, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 325, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix all of the ingredients until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mignano Bar\" Assembly:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Evenly sprinkle the puffed rice over the set caramel while still in the frame; lightly press the puffed rice into the caramel.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Slowly pour the warm ganache over the puffed rice-caramel sheet; the ganache should be ½-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Allow the ganache to set for 4-6 hours or overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Remove the metal frame and invert the chocolate-caramel sheet so the caramel is facing upright.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Spread a thin layer of tempered chocolate over the caramel sheet, then evenly sprinkle the Graham cracker mixture over the tempered chocolate. Press firmly down on the cracker mixture to create an even, tightly compacted crust. Refrigerate for 3 hours or until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Invert the sheet so the cracker mixture is on the bottom; cut into desired shapes and enrobe in tempered chocolate. Sprinkle the top of each candy bar with a small amount Hawaiian sea salt before the chocolate fully sets.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fig_bars", - "schema_version": 2, - "save_version": 6, - "title": "Fig Bars", - "summary": "Yield: two 20-inch logs", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1665.25, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 20-inch logs\",\"The dough must be chilled before baking or it will melt and expose the filling.\",\"Baked cookies can be stored in an airtight container for several days or frozen.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough", - "position": 1, - "name": "Dough", - "notes_json": "[]" - }, - { - "id": "filling", - "position": 2, - "name": "Filling", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 56.82, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 34.09, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 4.55, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.28, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 81.82, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_flour_bread", - "position": 7, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 18.18, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_08_dried_figs", - "position": 1, - "ingredient_id": "dried_figs", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 103.18, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_09_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 17.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_10_vanilla_sugar", - "position": 3, - "ingredient_id": "vanilla_sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 5.68, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_11_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 22.73, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_12_port_wine", - "position": 5, - "ingredient_id": "port_wine", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 22.73, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "filling", - "id": "line_13_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.23, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the whole egg and yolk one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Portion into 2 pieces and refrigerate for at least 30 minutes to firm the butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Filling:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Remove the woody stems from the figs and coarsely chop.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "In a saucepan, combine the chopped figs, sugars, water, wine, and juice. Cook until tender and set aside to cool. You may need a little more water if the liquid evaporates before the figs are tender.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Assembly:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Roll each portion of dough into a rectangle roughly 6 x 20-inch and place the rectangles on a piece of parchment paper.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Brush the edges with egg wash.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Place ½ of the filling along the center of each piece of dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Fold the edges up to cover the filling, overlapping slightly to seal.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_14", - "position": 14, - "instruction": "Lift the parchment paper and roll each log over so that the seam is on the bottom.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_15", - "position": 15, - "instruction": "Chill for 30 minutes before use. Alternatively, the logs may be frozen at this point and baked off as needed.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_16", - "position": 16, - "instruction": "Brush the logs with egg wash before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_17", - "position": 17, - "instruction": "Bake at 350°F (177°C) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "flaky_american_pie_dough", - "schema_version": 2, - "save_version": 6, - "title": "Flaky American Pie Dough", - "summary": "Yield: one 9-inch double crust deep-dish pie", - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 900, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch double crust deep-dish pie\",\"To inhibit gluten development, keep all ingredients and mixing bowl as cold as possible.\",\"The exact amount of hydration needed can vary depending upon the type of flour used and the humidity in the air.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.78, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.78, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 51.11, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_shortening", - "position": 5, - "ingredient_id": "shortening", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 107, - "unit_id": "gram", - "percentage": 23.78, - "basis_member": 0, - "optional": 0, - "notes": "ice cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_white_vinegar", - "position": 7, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.56, - "basis_member": 0, - "optional": 0, - "notes": "white or cider", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the flour, salt, sugar, butter, and shortening until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add ½ of the liquid to the dry ingredients and mix for 10 seconds on low speed to hydrate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the remaining liquid and mix until the dough is shaggy but holds together when pressed between two fingers.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Turn the dough out onto a lightly floured work surface. Gently shape into desired sized rounds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "flavored_chantilly_recipes", - "schema_version": 2, - "save_version": 6, - "title": "Flavored Chantilly Recipes", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1240, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate. In a saucepan, combine the cream and sugar and bring to a boil to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the melted chocolate and hot cream together until homogenous. Allow to stand at room temperature for 1 hour, then strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate. In a saucepan, bring the cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the melted chocolate and hot cream together until homogenous. Allow to stand at room temperature for 1 hour, then strain through a fine-mesh strainer; stir in the cold milk and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "flavored_chantilly_recipes_p204", - "schema_version": 2, - "save_version": 6, - "title": "Flavored Chantilly Recipes", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1670, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_milk", - "position": 1, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 650, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate. In a saucepan, combine the cream and sugar and bring to a boil to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the melted chocolate and hot cream together until homogenous. Allow to stand at room temperature for 1 hour, then strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate. In a saucepan, bring the cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the melted chocolate and hot cream together until homogenous. Allow to stand at room temperature for 1 hour, then strain through a fine-mesh strainer; stir in the cold milk and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "flexible_chocolate_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Flexible Chocolate Ganache", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_agave_syrup", - "position": 3, - "ingredient_id": "agave_syrup", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_coffee", - "position": 4, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_agar_agar", - "position": 5, - "ingredient_id": "agar_agar", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_glucose_syrup", - "position": 6, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_heavy_cream", - "position": 7, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 900, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_chocolate_dark", - "position": 9, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the agave syrup, coffee and agar in a saucepan and bring to a boil. Add the glucose syrup and whisk to blend.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the cream and salt to the saucepan and return to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the bloomed gelatin to the hot cream mixture and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour the hot cream mixture over the chocolate in a bowl and allow to stand for 2 minutes; emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour the ganache onto an acetate lined half-sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Refrigerate for 4-6 hours or overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "flourless_chocolate_cake", - "schema_version": 2, - "save_version": 6, - "title": "Flourless Chocolate Cake", - "summary": "Yield: one 9-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 937, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch cake pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 233, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_dark", - "position": 2, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "70-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_almond_flour", - "position": 3, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the butter and chocolate together; cool until 120°F (49°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Stir in the flour, egg yolks and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a whisk attachment, make a medium-soft peak French meringue with the sugar and egg whites.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the meringue into the chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out with a few crumbs on it.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Allow the cake to cool in the pan before unmolding.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "flourless_chocolate_truffle_cake", - "schema_version": 2, - "save_version": 6, - "title": "Flourless Chocolate Truffle Cake", - "summary": "Yield: one 9-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch cake pan\",\"Toasted and chopped nuts may be added to the batter as desired.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 248, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 369, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "66-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, sugar, salt and butter to a boil. Add the chocolate and whisk until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Temper the chocolate mixture with the eggs.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Fill a prepared cake pan that has been buttered and sugared.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325°F (163ºC) in a water bath just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Allow the cake to cool in the pan before unmolding.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "focaccia", - "schema_version": 2, - "save_version": 7, - "title": "Focaccia", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1515, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": "hybrid", - "scaling_basis_id": "formula_basis", - "scaling_basis_quantity": 100, - "scaling_basis_unit_id": "gram", - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{\"schema_version\":2,\"id\":\"focaccia\",\"title\":\"Focaccia\",\"categories\":[\"bread\"],\"tags\":[\"loaf\"],\"yield\":{\"amount\":{\"quantity\":197,\"unit_id\":\"gram\"},\"basis\":\"theoretical\"},\"scaling\":{\"mode\":\"hybrid\",\"basis_id\":\"formula_basis\",\"basis_amount\":{\"quantity\":100,\"unit_id\":\"gram\"}},\"components\":[{\"id\":\"main\",\"name\":\"Main\",\"items\":[{\"id\":\"line_01_flour_bread\",\"reference\":{\"ingredient_id\":\"flour_bread\"},\"amount\":{\"quantity\":100,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true},{\"id\":\"line_02_water\",\"reference\":{\"ingredient_id\":\"water\"},\"amount\":{\"quantity\":85,\"unit_id\":\"gram\"},\"percentage\":85},{\"id\":\"line_03_shortening\",\"reference\":{\"ingredient_id\":\"shortening\"},\"amount\":{\"quantity\":7,\"unit_id\":\"gram\"},\"percentage\":7},{\"id\":\"line_04_salt\",\"reference\":{\"ingredient_id\":\"salt\"},\"amount\":{\"quantity\":2,\"unit_id\":\"gram\"},\"percentage\":2},{\"id\":\"line_05_instant_yeast\",\"reference\":{\"ingredient_id\":\"instant_yeast\"},\"amount\":{\"quantity\":2,\"unit_id\":\"gram\"},\"percentage\":2},{\"id\":\"line_06_barley_malt_syrup\",\"reference\":{\"ingredient_id\":\"barley_malt_syrup\"},\"amount\":{\"quantity\":1,\"unit_id\":\"gram\"},\"percentage\":1}]}],\"equipment_ids\":[\"sheet_pan\"],\"steps\":[{\"id\":\"step_01\",\"order\":1,\"instruction\":\"Preheat baking steel 45 min, 500 °F.\",\"component_ids\":[\"main\"]},{\"id\":\"step_02\",\"order\":2,\"instruction\":\"Combine dry.\",\"component_ids\":[\"main\"]},{\"id\":\"step_03\",\"order\":3,\"instruction\":\"Combine liquid.\",\"component_ids\":[\"main\"]},{\"id\":\"step_04\",\"order\":4,\"instruction\":\"Mix until well combined.\",\"component_ids\":[\"main\"]},{\"id\":\"step_05\",\"order\":5,\"instruction\":\"Add fat.\",\"component_ids\":[\"main\"]},{\"id\":\"step_06\",\"order\":6,\"instruction\":\"Intensive mix.\",\"component_ids\":[\"main\"]},{\"id\":\"step_07\",\"order\":7,\"instruction\":\"Flatten into oiled 1/2 sheet pan.\",\"component_ids\":[\"main\"]},{\"id\":\"step_08\",\"order\":8,\"instruction\":\"Allow proof ≈1 hr, 80 °F.\",\"component_ids\":[\"main\"]},{\"id\":\"step_09\",\"order\":9,\"instruction\":\"Stripple dough halfway through proof.\",\"component_ids\":[\"main\"]},{\"id\":\"step_10\",\"order\":10,\"instruction\":\"Stripple once more at the end of proof.\",\"component_ids\":[\"main\"]},{\"id\":\"step_11\",\"order\":11,\"instruction\":\"Bake 12 min at 500 °F.\",\"component_ids\":[\"main\"]}],\"notes\":[\"Formula uses a nominal 100 g basis; review the yield before use.\"]}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [ - "sheet_pan" - ], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 830, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": 65.06, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_olive_oil", - "position": 3, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": 13.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2.41, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_yeast_fresh", - "position": 5, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 1.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, combine all of the ingredients and mix on low speed for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Continue to mix on medium speed for 3-5 minutes, or until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pre-shape into a round and place on an oiled parchment-lined half sheet pan. Rub the top of the dough with olive oil. Cover with plastic wrap and proof until doubled in volume.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stretch the dough carefully to fit an entire half sheet pan, being careful not to over-deflate.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Dimple the dough and top with olive oil and desired toppings. Proof for 20-30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 400°F (204°C) for 10-12 minutes, or until the internal temperature is between 200-210°F (93-99°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fougasse", - "schema_version": 2, - "save_version": 6, - "title": "Fougasse", - "summary": "Yield: six 290 g (10.2 oz) loaves", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1760, - "yield_unit_id": "gram", - "yield_servings": 6, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: six 290 g (10.2 oz) loaves\",\"Try adding herbs, herb oils, olives, sun dried tomatoes, or cheese to the dough as desired.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_olive_oil", - "position": 4, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_yeast_fresh", - "position": 5, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the first 5 ingredients on low speed for 2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Switch to a hook attachment and add the salt and sugar. Mix on medium speed for 6-8 minutes, or until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the dough in an oiled bowl and bulk proof for 2 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Divide into 290 g (10.2 oz) pieces and pre-shape into balls. Cover and bench rest for 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pat the dough into oblong rectangles approximately ¼-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "With a bench scraper, cut 1 line through the center of the dough, followed by 3 lines on both sides of the center cut at about a 30º angle to create an \"ear of wheat\" pattern.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Gently lift and stretch the dough onto an oiled sheet pan so the cuts open up about 1½-inches. The pattern can be adjusted once the bread is on the sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Proof until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Gently brush the tops with olive oil and garnish with f leur de sel and fresh ground pepper.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Bake at 400°F (204ºC) until golden brown and hollow sounding when tapped.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Lightly brush the tops of each fougasse with additional olive oil while still hot from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "four_spice_syrup", - "schema_version": 2, - "save_version": 6, - "title": "Four Spice Syrup", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_honey", - "position": 1, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_juice", - "position": 3, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_passion_fruit_juice", - "position": 4, - "ingredient_id": "passion_fruit_juice", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_fresh_ginger", - "position": 5, - "ingredient_id": "fresh_ginger", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "peeled & grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cinnamon_sticks", - "position": 6, - "ingredient_id": "cinnamon_sticks", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_bean", - "position": 7, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_whole_nutmeg", - "position": 8, - "ingredient_id": "whole_nutmeg", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "crushed (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, whisk all of the ingredients together and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and reduce by ⅓, or until desired consistency is reached.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "frangipane_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Frangipane Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1660, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_paste", - "position": 1, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 222.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.39, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.39, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the almond paste and sugar until crumbly.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the butter and then cream until light and smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted flour and salt and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until firm to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "french_buttercream", - "schema_version": 2, - "save_version": 6, - "title": "French Buttercream", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1518, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, combine the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Using a wet pastry brush, clean all of the sugar crystals from the sides of the pan to prevent crystallization.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the saucepan over medium-high heat and cook to soft-ball stage, 235-240°F (113-116°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Meanwhile, in a mixer fitted with a whisk attachment, whisk the egg yolks and whole egg until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "As soon as the syrup reaches soft-ball stage, slowly pour the hot syrup down the sides of the bowl into the whipped eggs with the mixer running. Do not let the syrup hit the whisk attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Whisk until the pâte a bombe is cool.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Incrementally add the softened butter and salt into the pâte a bombe, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Flavor as desired.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fresh_banana_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Fresh Banana Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2150, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_bananas", - "position": 4, - "ingredient_id": "bananas", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ripe", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_dark_rum", - "position": 5, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lime_juice", - "position": 6, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_bean", - "position": 7, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a blender, puree the bananas, rum, juice, and vanilla bean seeds until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin and whisk it into the puree until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fresh_blueberry_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Fresh Blueberry Pie Filling", - "summary": "Yield: one 9-inch pie", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 953, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch pie\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_blueberries", - "position": 1, - "ingredient_id": "blueberries", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_juice", - "position": 3, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 37, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_black_pepper", - "position": 7, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "freshly ground (⅛ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_instant_tapioca", - "position": 8, - "ingredient_id": "instant_tapioca", - "subrecipe_id": null, - "quantity": 16, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix all of the ingredients in a bowl. Allow the blueberries to macerate at room temperature for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fill a 9-inch pie crust with the blueberry pie filling.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cover with the top crust and seal the edges. Cut several slits in the top crust.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Lightly cover the pie with plastic wrap and refrigerate for 30-60 minutes before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "fried_rice", "schema_version": 2, @@ -65956,1868 +18866,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "fromage_blanc_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Fromage Blanc Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1385, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 16, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_goat_cheese", - "position": 4, - "ingredient_id": "goat_cheese", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_whole_fat_yogurt", - "position": 5, - "ingredient_id": "whole_fat_yogurt", - "subrecipe_id": null, - "quantity": 410, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sour_cream", - "position": 6, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 138, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_fromage_blanc", - "position": 7, - "ingredient_id": "fromage_blanc", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lime", - "position": 8, - "ingredient_id": "lime", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "juice & zest", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whites", - "position": 9, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 195, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pass the goat cheese through a tamis.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a large bowl, whisk the cheeses, yogurt, sour cream, juice, and zest until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin and whisk into the yogurt mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the meringue into the yogurt mixture, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fromage_blanc_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Fromage Blanc Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 322, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 272, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sorbet_stabilizer", - "position": 3, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_fromage_blanc", - "position": 5, - "ingredient_id": "fromage_blanc", - "subrecipe_id": null, - "quantity": 368, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sour_cream", - "position": 6, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_yogurt", - "position": 7, - "ingredient_id": "yogurt", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lemon_juice", - "position": 8, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_lime_juice", - "position": 9, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_lime_zest", - "position": 10, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, heat the water until warm, 105°F (40°C); whisk in the granulated sugar that has been blended with the stabilizer, followed by the invert sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan", - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Chill immediately. Once cool, blend in the fromage blanc, sour cream, yogurt, juices, and zest with an immersion blender until smooth and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fruit_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Fruit Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1270, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The quantity of sugar in this base recipe may need to be adjusted depending upon the fruit puree used.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_fruit_puree", - "position": 4, - "ingredient_id": "fruit_puree", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring ½ of the puree and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Off the heat, add the bloomed and drained gelatin to the hot puree mixture; whisk to dissolve. Stir the other ½ of the cold puree into the hot puree.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled puree.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fruit_cake", - "schema_version": 2, - "save_version": 6, - "title": "Fruit Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 3075, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\",\"Dredge the dried fruits and nuts with 3 tablespoons of the dry ingredients to help keep them suspended throughout the batter.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 88.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_honey", - "position": 3, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_orange_zest", - "position": 5, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 66.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 13.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_flour_bread", - "position": 9, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_cinnamon", - "position": 11, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_nutmeg", - "position": 12, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.28, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_dried_fruit", - "position": 13, - "ingredient_id": "dried_fruit", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": 222.22, - "basis_member": 0, - "optional": 0, - "notes": "macerated in brandy, then drained & patted dry", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_mixed_nuts", - "position": 14, - "ingredient_id": "mixed_nuts", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 77.78, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, honey, and zests.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the whole eggs and yolks one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the macerated dried fruit and nuts and mix just to incorporate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Soak with simple syrup spiked with brandy while still hot from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Allow the cake to cool in the pan just until warm before unmolding.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fruit_creme_mousseline", - "schema_version": 2, - "save_version": 6, - "title": "Fruit Crème Mousseline", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2054, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The quantity of sugar may need to be adjusted depending on the kind of fruit used.\",\"Also see the Chef's Notes in the Basic Crème Mousseline recipe on page 179.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_fruit_puree", - "position": 1, - "ingredient_id": "fruit_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cornstarch", - "position": 6, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the puree and first weight of sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the whole eggs, yolks, second weight of sugar, and cornstarch in a bowl until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the puree comes to a boil, temper the egg mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the tempered egg mixture back to the pan with the hot puree and bring the mixture to a boil, whisking continuously for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "In a mixer fitted with a paddle attachment, beat the hot pastry cream until slightly warm, about 110ºF (43ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "When the pastry cream is slightly warm, add the butter in several additions, beating until completely incorporated and the mixture is light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fruit_nut_granola", - "schema_version": 2, - "save_version": 6, - "title": "Fruit & Nut Granola", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2682, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_honey", - "position": 3, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_extract", - "position": 4, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon", - "position": 5, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_rolled_oats", - "position": 7, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 680, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_unsweetened_coconut", - "position": 8, - "ingredient_id": "unsweetened_coconut", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "shredded", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_raw_cashews", - "position": 9, - "ingredient_id": "raw_cashews", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_pecan", - "position": 10, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_raw_pistachios", - "position": 11, - "ingredient_id": "raw_pistachios", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_slivered_almonds", - "position": 12, - "ingredient_id": "slivered_almonds", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_dried_fruits", - "position": 13, - "ingredient_id": "dried_fruits", - "subrecipe_id": null, - "quantity": 570, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "diced", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, combine the butter, sugar, honey, extract, cinnamon, and salt. Bring to a simmer, stirring until the sugar is dissolved. Let cool slightly.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a large bowl, combine the oats, coconut, and nuts. Add the sugar mixture and stir to coat.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Spread the granola onto parchment-lined sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 275°F (135°C) until golden, stirring occasionally. Combine with the dried fruit.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Store in a airtight container for up to 1 month.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "fruit_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Fruit Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1290, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Food coloring may be added to the batter as desired depending upon the fruit puree used.\",\"It is best to bake the tuiles at a lower temperature to preserve the color.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 160, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 400, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_fruit_puree", - "position": 3, - "ingredient_id": "fruit_puree", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Alternately add the puree and sifted dry ingredients, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "ganache", - "schema_version": 2, - "save_version": 6, - "title": "Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 3365, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1785, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_valrhona_ilanka", - "position": 2, - "ingredient_id": "valrhona_ilanka", - "subrecipe_id": null, - "quantity": 1580, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "63%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Pour the hot cream over the chocolate. Allow to stand for 5 minutes, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make an amber caramel with the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the butter and vanilla bean seeds into the caramel until emulsified.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir the puffed rice into the caramel until evenly coated. Evenly spread the caramelized puffed rice onto parchment paper to avoid clumping.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Allow to cool, then coarsely chop.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "ganache_p415", - "schema_version": 2, - "save_version": 6, - "title": "Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1090, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_puffed_rice", - "position": 5, - "ingredient_id": "puffed_rice", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "unsweetened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Pour the hot cream over the chocolate. Allow to stand for 5 minutes, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make an amber caramel with the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the butter and vanilla bean seeds into the caramel until emulsified.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir the puffed rice into the caramel until evenly coated. Evenly spread the caramelized puffed rice onto parchment paper to avoid clumping.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Allow to cool, then coarsely chop.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "general_tso_sauce", "schema_version": 2, @@ -68086,1230 +19134,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "genoise_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Genoise Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1285, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"Approximately 1 kilo (35.3 oz) of batter will fit a 9-inch cake pan.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 90, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 28.33, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the eggs and sugars over a water bath until warm, 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the egg mixture until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the flour and salt together and gently fold into the egg foam until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice a little of the egg foam mixture into the melted but cooled butter and gently fold that into the rest of the batter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "genoise_sheet_cake_with_coconut", - "schema_version": 2, - "save_version": 6, - "title": "Genoise Sheet Cake with Coconut", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1462, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"Approximately 1 kilo (35.3 oz) of batter will fit a 9-inch cake pan.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 150, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_cake", - "position": 3, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_desiccated_coconut", - "position": 5, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 187, - "unit_id": "gram", - "percentage": 62.33, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the eggs and sugar over a water bath until warm, 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the egg mixture until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the flour and salt, then combine with the coconut. Gently fold the dry ingredients into the egg foam until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice a little of the egg foam mixture into the melted but cooled butter and gently fold that into the rest of the batter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "genoise_sheet_cake_with_nuts", - "schema_version": 2, - "save_version": 6, - "title": "Genoise Sheet Cake with Nuts", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1575, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"Approximately 1 kilo (35.3 oz) of batter will fit a 9-inch cake pan.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 222.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 22.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cornstarch", - "position": 5, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.11, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_nuts", - "position": 7, - "ingredient_id": "nuts", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 111.11, - "basis_member": 0, - "optional": 0, - "notes": "toasted & finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the eggs and sugars over a water bath until warm, 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the egg mixture until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the flour, cornstarch, and salt together, then combine with the chopped nuts. Gently fold the dry ingredients into the egg foam until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice a little of the egg foam mixture into the melted but cooled butter, and gently fold that into the rest of the batter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "german_chocolate_frosting", - "schema_version": 2, - "save_version": 6, - "title": "German Chocolate Frosting", - "summary": "Yield: three 9-inch cakes", - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2400, - "yield_unit_id": "gram", - "yield_servings": 3, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: three 9-inch cakes\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_evaporated_milk", - "position": 1, - "ingredient_id": "evaporated_milk", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 355, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pecan", - "position": 6, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flaked_coconut", - "position": 7, - "ingredient_id": "flaked_coconut", - "subrecipe_id": null, - "quantity": 310, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_dark_rum", - "position": 9, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix the evaporated milk, sugars, butter and egg yolks in a saucepan. Cook over medium-low heat until thickened, stirring constantly.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Stir in the pecans, coconut, extract, rum and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cool until thick enough to spread.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gianduja", - "schema_version": 2, - "save_version": 6, - "title": "Gianduja", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1340, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gianduja", - "position": 1, - "ingredient_id": "gianduja", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the gianduja. In a saucepan, bring the cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the melted chocolate and hot cream together until homogenous. Allow to stand at room temperature for 1 hour, then strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the cream and vanilla bean to a scald.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a deep amber caramel with the sugar. Whisk in the butter, followed by the cream in several additions until smooth. Add salt to taste.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gianduja_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Gianduja Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1658, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gianduja", - "position": 1, - "ingredient_id": "gianduja", - "subrecipe_id": null, - "quantity": 405, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_gelatin_sheet", - "position": 2, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the sugar, whole eggs, yolks, and salt over a water bath until light and thick. Add the bloomed and drained gelatin and whip in a mixer fitted with a whisk attachment until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the whipped cream into the warm gianduja, followed by the egg foam.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gianduja_p205", - "schema_version": 2, - "save_version": 6, - "title": "Gianduja", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1260, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_vanilla_bean", - "position": 2, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the gianduja. In a saucepan, bring the cream to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the melted chocolate and hot cream together until homogenous. Allow to stand at room temperature for 1 hour, then strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the cream and vanilla bean to a scald.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a deep amber caramel with the sugar. Whisk in the butter, followed by the cream in several additions until smooth. Add salt to taste.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and chill.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "ginger_molasses_cookie", "schema_version": 2, @@ -69573,2020 +19397,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "ginger_sake_sabayon", - "schema_version": 2, - "save_version": 6, - "title": "Ginger-Sake Sabayon", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1310, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sake", - "position": 1, - "ingredient_id": "sake", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_fresh_ginger", - "position": 2, - "ingredient_id": "fresh_ginger", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_heavy_cream", - "position": 6, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Peel and slice the ginger into thin medallions. Infuse the medallions with the sake overnight in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks and sugar in a bowl until pale.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the egg yolks and sugar mixture over a water bath, adding the juice and strained ginger infused sake a little at a time. Cook the sabayon over the water bath, whisking continuously, until thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whip the cream to soft peaks and fold into the cooled sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gingerbread_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Gingerbread Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": 35.95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": 35.95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_light_corn_syrup", - "position": 3, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": 42.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 15.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_bread", - "position": 5, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 598, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_soda", - "position": 6, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_ginger", - "position": 8, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cloves", - "position": 9, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, heat the butter, sugar, corn syrup, and milk. Stir until a smooth paste forms.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Wrap the dough in plastic wrap and refrigerate overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Roll out small portions of dough very thinly (about 1", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Brush the cookies with egg wash before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) for about 8-10 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gingerbread_house_dough", - "schema_version": 2, - "save_version": 6, - "title": "Gingerbread House Dough", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1494, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"If wrapped very well, this dough can keep for several months in the refrigerator and even longer in the freezer.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_margarine", - "position": 1, - "ingredient_id": "margarine", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": 31.48, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": 31.48, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_corn_syrup", - "position": 3, - "ingredient_id": "corn_syrup", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": 37.34, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 13.18, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_bread", - "position": 5, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 683, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_soda", - "position": 6, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cinnamon", - "position": 8, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 1.76, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cloves", - "position": 9, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_ginger", - "position": 10, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_cardamom", - "position": 11, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_baking_soda", - "position": 12, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, heat the margarine, sugar, corn syrup, and milk while stirring until it becomes a smooth paste. Allow the paste to cool just until warm.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the dry ingredients into a bowl of a mixer fitted with a paddle attachment, add the warm paste and mix until a smooth, homogenous dough forms.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Wrap the dough in plastic wrap and refrigerate overnight before use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gluten_free_butter_almond_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Gluten-Free Butter-Almond Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1415, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": 342.86, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 85.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 2.14, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": "whisked", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_rice_flour", - "position": 5, - "ingredient_id": "rice_flour", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_almond_flour", - "position": 6, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_confectioners_sugar", - "position": 7, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.79, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": 135.71, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_almond_extract", - "position": 10, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.79, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_vanilla_extract", - "position": 11, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.79, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a stiff peak French meringue with the egg whites, granulated sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fold the egg yolks into the meringue until streaky, followed by the sifted dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sacrifice a small amount of batter into the melted butter and extract mixture, and fold that into the cake batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350ºF (177ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gluten_free_chocolate_cupcakes", - "schema_version": 2, - "save_version": 6, - "title": "Gluten-Free Chocolate Cupcakes", - "summary": "Yield: twenty-four 3 oz cupcakes", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty-four 3 oz cupcakes\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_canned_black_beans", - "position": 1, - "ingredient_id": "canned_black_beans", - "subrecipe_id": null, - "quantity": 482, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "rinsed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_canola_oil", - "position": 6, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_espresso_powder", - "position": 8, - "ingredient_id": "espresso_powder", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_soda", - "position": 9, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_chocolate_dark", - "position": 11, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "70%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Puree all of the ingredients in a blender- except for the chocolate - until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the chocolate and blend for an additional 15 seconds to break down into chips.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 350°F (177°C) until spongy to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gluten_free_chocolate_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Gluten-Free Chocolate Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1213, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 438, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "whisked", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fold the egg yolks into the meringue until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the cocoa powder and salt over the meringue. Gently fold together until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325ºF (163ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "gluten_free_ham_cheese_buttermilk_biscuits", - "schema_version": 2, - "save_version": 6, - "title": "Gluten-Free Ham & Cheese Buttermilk Biscuits", - "summary": "Yield: twenty-two 57 g (2 oz) biscuits", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1300, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty-two 57 g (2 oz) biscuits\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_white_rice_flour", - "position": 1, - "ingredient_id": "white_rice_flour", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": 85.71, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_potato_starch", - "position": 2, - "ingredient_id": "potato_starch", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 20.41, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_tapioca_flour", - "position": 3, - "ingredient_id": "tapioca_flour", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 14.29, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 6.12, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_soda", - "position": 5, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.04, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.04, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.02, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_xanthan_gum", - "position": 8, - "ingredient_id": "xanthan_gum", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": 0.2, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_gruy_re_cheese", - "position": 9, - "ingredient_id": "gruy_re_cheese", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 16.33, - "basis_member": 0, - "optional": 0, - "notes": "grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_smoked_ham", - "position": 10, - "ingredient_id": "smoked_ham", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 16.33, - "basis_member": 0, - "optional": 0, - "notes": "finely diced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_fresh_chives", - "position": 11, - "ingredient_id": "fresh_chives", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.06, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_egg_whole", - "position": 12, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 40.82, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_buttermilk", - "position": 13, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 30.61, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_canola_oil", - "position": 14, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 28.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the cheese, ham, and chives to the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk together the wet ingredients. Add to the dry ingredients and stir to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Drop or scoop 57 g (2 oz) per biscuit onto parchment-lined sheet pans and flatten slightly.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until the sides feel slightly firm and the tops and edges begin to brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Brush with melted butter while hot from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "goat_cheese_cheesecake", - "schema_version": 2, - "save_version": 6, - "title": "Goat Cheese Cheesecake", - "summary": "Yield: one 10-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2316, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 10-inch cake pan\",\"For best results, use a high quality soft goat cheese.\",\"Use 200 g (7 oz) of graham cracker crumb mix on page 70 for one 10-inch cake pan.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_goat_cheese", - "position": 1, - "ingredient_id": "goat_cheese", - "subrecipe_id": null, - "quantity": 582, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cream_cheese", - "position": 2, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sour_cream", - "position": 7, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_heavy_cream", - "position": 8, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 234, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the goat cheese, cream cheese, sugar, zest, and vanilla bean seeds on medium speed until smooth and creamy, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "On medium speed, add the eggs in 3 additions, scraping down the bowl again as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sour cream and heavy cream and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149ºC) in a water bath.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "goat_milk_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Goat Milk Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_goat_milk", - "position": 1, - "ingredient_id": "goat_milk", - "subrecipe_id": null, - "quantity": 850, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_dextrose", - "position": 4, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 205, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_zest", - "position": 6, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_invert_sugar", - "position": 7, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_ice_cream_stabilizer", - "position": 9, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk powder and dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Rub the zest with the first weight of granulated sugar until fragrant.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the second weight of sugar with the stabilizer and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Heat the milk mixture until warm, 105°F (40°C); whisk in the lemon zest sugar, invert sugar, and the second weight of sugar that has been blended with the stabilizer and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "kitchen_scale", - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "graham_cracker_crust", "schema_version": 2, @@ -71707,1026 +19517,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "graham_cracker_pate_sable", - "schema_version": 2, - "save_version": 6, - "title": "Graham Cracker Pâte Sablé", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1200, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This dough is good for tarts as well as cookies.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\",\"For cookies, brush with egg wash and sprinkle with cinnamon sugar. Bake at 300°F/149°C until golden brown.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 89.02, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_honey", - "position": 2, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 114, - "unit_id": "gram", - "percentage": 22.35, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 68, - "unit_id": "gram", - "percentage": 13.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 7.84, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.98, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_whole_wheat", - "position": 6, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 66.67, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.98, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cinnamon", - "position": 9, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.59, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, honey and light brown sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "grand_marnier_semifreddo", - "schema_version": 2, - "save_version": 6, - "title": "Grand Marnier Semifreddo", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_grand_marnier", - "position": 2, - "ingredient_id": "grand_marnier", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_orange_zest", - "position": 5, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_water", - "position": 8, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_glucose_syrup", - "position": 9, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the Grand Marnier, egg yolks, vanilla bean seeds, and zest over a water bath until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the egg whites, sugar, water, and glucose; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the whipped cream into the chilled sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Sacrifice some of the whipped cream mixture into the meringue, then fold the two together until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "grand_marnier_souffle", - "schema_version": 2, - "save_version": 6, - "title": "Grand Marnier Soufflé", - "summary": "Yield: fifteen 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 985, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 5.5 oz soufflé ramekins\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 625, - "unit_id": "gram", - "percentage": 625, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 160, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make pastry cream with the milk, sugar, egg yolks, flour, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the Grand Marnier and zest into the pastry cream base until smooth; set aside to cool until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and egg white powder.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice a small amount of the meringue and whisk it into the pastry cream mixture to lighten. Fold in the rest of the meringue until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fill the soufflé ramekins that have been buttered and sugared.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191°C) until risen but still soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "grand_marnier_souffle_p108", - "schema_version": 2, - "save_version": 6, - "title": "Grand Marnier Soufflé", - "summary": "Yield: fifteen 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1890, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 5.5 oz soufflé ramekins\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pastry_cream_base", - "position": 1, - "ingredient_id": "pastry_cream_base", - "subrecipe_id": null, - "quantity": 985, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_grand_marnier", - "position": 2, - "ingredient_id": "grand_marnier", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_white_powder", - "position": 6, - "ingredient_id": "egg_white_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make pastry cream with the milk, sugar, egg yolks, flour, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the Grand Marnier and zest into the pastry cream base until smooth; set aside to cool until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and egg white powder.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice a small amount of the meringue and whisk it into the pastry cream mixture to lighten. Fold in the rest of the meringue until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fill the soufflé ramekins that have been buttered and sugared.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191°C) until risen but still soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "granola_buttermilk_waffles", - "schema_version": 2, - "save_version": 6, - "title": "Granola Buttermilk Waffles", - "summary": "Yield: ten 8-inch waffles", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1050, - "yield_unit_id": "gram", - "yield_servings": 10, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: ten 8-inch waffles\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": 78.57, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_cake", - "position": 2, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 21.43, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 11.9, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 4.76, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_soda", - "position": 5, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_buttermilk", - "position": 7, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 397, - "unit_id": "gram", - "percentage": 189.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 53.81, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 47.62, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_vanilla_extract", - "position": 10, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 4.76, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_olive_oil_maple_granola", - "position": 11, - "ingredient_id": "olive_oil_maple_granola", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 83.33, - "basis_member": 0, - "optional": 0, - "notes": "pg 498", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients into a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the buttermilk, melted butter, eggs, and extract until combined.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the wet and dry ingredients, stirring just until nearly smooth; do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Ladle the batter into a preheated waffle iron that has been sprayed with pan spray or brushed with butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sprinkle granola evenly over the batter – the amount of granola will depend upon the size of your waffle iron.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cook the waffles according to the manufacturer's directions. For an 8-inch round waffle iron, use about 85 g (3 oz) of batter; cook for 2-3 minutes until golden and crisp.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "gravy", "schema_version": 2, @@ -72882,644 +19672,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "green_apple_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Green Apple Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2120, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_green_apple_puree", - "position": 4, - "ingredient_id": "green_apple_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_apple_brandy", - "position": 6, - "ingredient_id": "apple_brandy", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and brandy. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "green_tea_coconut_diamant", - "schema_version": 2, - "save_version": 6, - "title": "Green Tea-Coconut Diamant", - "summary": "Yield: seven 200 g (7 oz) logs", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1490, - "yield_unit_id": "gram", - "yield_servings": 7, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: seven 200 g (7 oz) logs\",\"200 g (7 oz) logs will yield petits fours sized cookies.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.63, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 15, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_desiccated_coconut", - "position": 6, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_matcha_powder", - "position": 8, - "ingredient_id": "matcha_powder", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 4.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.31, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the first 3 ingredients, being sure not to aerate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the yolks one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a food processor, grind the dry ingredients until fine. Add to the butter mixture and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Portion the dough into 200 g (7 oz) pieces and roll into 16-inch round logs; chill until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Brush the logs with egg whites and roll in granulated sugar before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Slice into medallions about ½-inch thick or as desired.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325°F (163ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "green_tea_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Green Tea Panna Cotta", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_matcha", - "position": 3, - "ingredient_id": "matcha", - "subrecipe_id": null, - "quantity": 9, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_whole", - "position": 5, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sift the matcha and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the cream, milk, and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk some of the hot cream mixture into the matcha to make a loose paste.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Off the heat, add the matcha paste, bloomed and drained gelatin, and extract to the hot cream and gently whisk to minimize air bubbles.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "guacamole", "schema_version": 2, @@ -73692,200 +19844,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "guava_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Guava Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_guava_puree", - "position": 4, - "ingredient_id": "guava_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "gyro_meat", "schema_version": 2, @@ -74668,413 +20626,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "hazelnut_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Hazelnut Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1700, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 60, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_praline_paste", - "position": 3, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 6.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_soda", - "position": 9, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_buttermilk", - "position": 10, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 53.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_hazelnut", - "position": 11, - "ingredient_id": "hazelnut", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 55.56, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugars, and praline paste.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately fold the sifted dry ingredients and buttermilk into the butter mixture in several additions, followed by the hazelnuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "hazelnut_sable_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Hazelnut Sablé Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1640, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 120, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_hazelnut_flour", - "position": 3, - "ingredient_id": "hazelnut_flour", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 8, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, hazelnut flour, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the all-purpose flour and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until light golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "hoagie", "schema_version": 2, @@ -75210,1031 +20761,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "honey_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Honey Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_honey", - "position": 5, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 63, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the milk, honey, and first weight of sugar to a boil. Meanwhile, whisk the egg yolks, second weight of sugar, and salt until light and thick. Temper ⅓ of the honey mixture into the yolk mixture. Return everything back to the saucepan and cook on mediumlow heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin, and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled honey crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "honey_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Honey Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 900, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 145, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 23, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_powdered_glucose", - "position": 4, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_ice_cream_stabilizer", - "position": 5, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_honey", - "position": 7, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "whisked", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk powder to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat until warm, 105°F (40°C); whisk in the glucose mixed with the stabilizer and salt, followed by the honey, melted butter, and egg yolks.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "honey_rosemary_creme_brulee", - "schema_version": 2, - "save_version": 6, - "title": "Honey-Rosemary Crème Brûlée", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1308, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Crème brûlée has a shelf life up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_honey", - "position": 2, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_rosemary", - "position": 3, - "ingredient_id": "rosemary", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 43, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, honey, and rosemary to a boil. Set aside to infuse for about 20 minutes, then strain.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixing bowl, whisk together the egg yolks, sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper the warm cream into the egg yolk mixture until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove excess air bubbles from the top of the crème brûlée custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "honey_whole_wheat_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Honey Whole Wheat Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1545, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 288, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 384, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_honey", - "position": 3, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 288, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 46.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_whole_wheat", - "position": 5, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 384, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_ginger", - "position": 6, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 5.21, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.33, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and honey.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg whites in 3 additions and mix until incorporated, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "hot_fudge_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Hot Fudge Sauce", - "summary": "Yield: approximately 1 kg (2 lb 3.3 oz). This hot fudge sauce is super rich and delicious. You'll always want to keep some on hand for topping ice cream, semifreddos, and cake.", - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1599.5, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: approximately 1 kg (2 lb 3.3 oz)\",\"Hot fudge sauce can be made ahead, refrigerated, and reheated as needed. Be sure to use a high quality Dutch processed cocoa powder for best results.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 732, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 62, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 62, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_glucose_syrup", - "position": 4, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 58, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 530, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cocoa_powder", - "position": 6, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 148, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, cream, butter, and glucose to a simmer.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sift together the sugar, cocoa powder, and salt. When the water mixture begins to simmer, whisk in the dry ingredients and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Lower to a simmer, stirring often to avoid scorching.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Simmer until reduced by ½ to ⅔ depending on desired consistency.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir in the extract.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "hot_fudge_v1", "schema_version": 2, @@ -76784,1113 +21310,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "individual_french_angel_food_cakes", - "schema_version": 2, - "save_version": 6, - "title": "Individual French Angel Food Cakes", - "summary": "Yield: eleven 4 oz molds", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 712, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: eleven 4 oz molds\",\"It is best to add the vanilla bean seeds to the meringue toward the end of the mixing process.\",\"A strained beurre noisette for the melted butter makes a nice substitution.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 192, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.8, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": 88, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, make a stiff peak French meringue with the egg whites, sugar, and vanilla bean seeds on medium speed.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sift the flour and salt over the meringue and gently fold in until still streaky with flour.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sacrifice some of the meringue into the melted butter, then fold the butter mixture into the meringue until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pipe the batter into prepared molds nearly to the top.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sift powdered sugar on top of the cakes before baking at 350°F (177°C) until a skewer nserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "individual_gluten_free_chocolate_cakes", - "schema_version": 2, - "save_version": 6, - "title": "Individual Gluten-Free Chocolate Cakes", - "summary": "Yield: eleven 4 oz molds", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1240, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: eleven 4 oz molds\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": 266.67, - "basis_member": 0, - "optional": 0, - "notes": "70%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 116.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 116.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cream_of_tartar", - "position": 8, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_rice_flour", - "position": 9, - "ingredient_id": "rice_flour", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_almond_flour", - "position": 10, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and the butter together. Set aside to cool until warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the sugar, egg yolks, and extract until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a separate mixing bowl, make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the whipped egg yolks into the melted chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the sifted dry ingredients into the chocolate mixture, followed by the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake to order at 350°F (177°C) until a skewer inserted comes out with moist crumbs, but not wet.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "inverse_puff_pastry", - "schema_version": 2, - "save_version": 6, - "title": "Inverse Puff Pastry", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The butter packet should be the same consistency as the dough packet when you begin assembly as this facilitates smooth and even lamination.\",\"Acid like vinegar helps relax gluten, making the dough more pliable.\",\"Puff pastry can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough_packet_detrempe", - "position": 1, - "name": "Dough Packet (Détrempe)", - "notes_json": "[]" - }, - { - "id": "butter_packet_beurrage", - "position": 2, - "name": "Butter Packet (Beurrage)", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "butter_packet_beurrage", - "id": "line_06_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 40, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "butter_packet_beurrage", - "id": "line_07_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": "cold & cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 60, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 2.4, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 28, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_05_white_vinegar", - "position": 5, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Dough Packet:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, combine the flour, salt, and butter. Mix until the butter has coated the flour and is no longer visible.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the water and vinegar. Add it to the dry ingredients and mix to form a dough. Do not over mix, but be sure there are no dry spots of flour in the dough.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pat the dough packet into a square, wrap in plastic wrap, and refrigerate for at least 1 hour.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Butter Packet:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "In a mixer fitted with a paddle attachment, mix the flour and cold butter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Pat the butter packet into a square and refrigerate for at least 20-30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Assembly:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "On a floured work surface, roll the corners of the butter packet into flaps.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Put the dough packet into the center of the butter packet and fold the flaps to completely cover the dough. Seal in the butter package.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Give the dough 2 letter turns rolling the dough ⅜-inch thick letting the dough rest in the refrigerator wrapped in plastic wrap for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Repeat 2 more letter turns rolling the dough ⅜-inch thick letting the dough rest in the refrigerator wrapped in plastic wrap for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Perform the last 2 letter turns for a total of 6.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "irish_soda_bread", - "schema_version": 2, - "save_version": 6, - "title": "Irish Soda Bread", - "summary": "Yield: two 6-inch loaves", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 909, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 6-inch loaves\",\"Do not overwork the dough or the bread will be tough.\",\"Any currants on the outside of the loaf that have burned during baking should be brushed off.\",\"Irish soda bread is best served and eaten the day it is made.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 397, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.59, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.26, - "basis_member": 0, - "optional": 0, - "notes": "1¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_soda", - "position": 4, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.26, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.26, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 57, - "unit_id": "gram", - "percentage": 14.36, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_dried_currants", - "position": 7, - "ingredient_id": "dried_currants", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 28.46, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_buttermilk", - "position": 8, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 57.18, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.59, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_orange_zest", - "position": 10, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Cut in the butter until it is well mixed into the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the currants.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the buttermilk, egg, and zest and mix into the dry ingredients just to moisten.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Shape into 2 balls and cut a broad X on the top of each ball approximately 1-1½-inch deep.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake immediately at 350°F (177ºC) until nicely browned (about 25-30 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "italian_meringue_buttercream", - "schema_version": 2, - "save_version": 6, - "title": "Italian Meringue Buttercream", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1958, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 650, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whites", - "position": 3, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, combine the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Using a wet pastry brush, clean all of the sugar crystals from the sides of the pan to prevent crystallization.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the saucepan over medium-high heat and cook to soft-ball stage, 235-240°F (113-116°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Meanwhile, in a mixer fitted with a whisk attachment, begin making a French meringue by whisking the egg whites and second weight of sugar when the sugar syrup comes to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "As soon as the syrup reaches soft-ball stage, slowly pour the hot syrup down the sides of the bowl into the French meringue with the mixer running. Do not let the syrup hit the whisk attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Whisk until the Italian meringue is cool.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Incrementally add the softened butter and salt into the meringue, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Flavor as desired.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "jimmy_johns_kickin_ranch_sauce", "schema_version": 2, @@ -78057,1089 +21476,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "joconde_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Joconde Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 750, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_flour", - "position": 1, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 437.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 437.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_cake", - "position": 3, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 3.13, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 500, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 300, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cream_of_tartar", - "position": 8, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 6.25, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the sifted dry ingredients in a mixing bowl fitted with a paddle attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the whole eggs and mix on high speed to form a smooth, aerated paste, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold the meringue into the almond mixture until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sacrifice some of the batter into the melted but cooled butter, then fold the butter mixture into the rest of the batter until homogenous. Do not over fold.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 400°F (204°C) until the cake is browned and springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "This recipe is the traditional biscuit used for Opera Cake.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "kaiser_rolls", - "schema_version": 2, - "save_version": 6, - "title": "Kaiser Rolls", - "summary": "Yield: fifteen 100 g (3.5 oz) rolls. In Germany and Austria, Kaiser rolls are traditionally topped with poppy seeds and eaten for breakfast with cheese, cold cuts, or jam. In New Jersey, Delaware, and parts of Pennsylvania they are also eaten for breakfast either with butter, or Taylor ham, fried egg, and cheese.", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1525, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 100 g (3.5 oz) rolls\",\"Make sure to flour the stamp occasionally so it doesn't stick to the dough.\",\"When stamping, press all the way down until you touch the sheet pan so the mark comes out clear and pronounced after baking.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 890, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 472, - "unit_id": "gram", - "percentage": 53.03, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 5.62, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_yeast_fresh", - "position": 4, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 3.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_canola_oil", - "position": 5, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 21, - "unit_id": "gram", - "percentage": 2.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": 2.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_malt_powder", - "position": 8, - "ingredient_id": "malt_powder", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix all of the ingredients on low speed for about 2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Switch to a hook attachment and mix on medium speed until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the dough in an oiled bowl and bulk proof for 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Divide into 100 g (3.5 oz) pieces and pre-shape into rounds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Place the rolls onto a parchment-lined sheet pan and proof for about 1 hour, or until almost double in size.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "After proofing, stamp the rolls with a Kaiser roll stamp and proof again for about 20-30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) for 10 minutes, or until baked through.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "kalamata_olive_bread_with_herbes_de_provence", - "schema_version": 2, - "save_version": 6, - "title": "Kalamata Olive Bread with Herbes de Provence", - "summary": "Yield: four 580 g (20.5 oz) loaves", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 2330, - "yield_unit_id": "gram", - "yield_servings": 4, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: four 580 g (20.5 oz) loaves\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "poolish", - "position": 1, - "name": "Poolish", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": 83.33, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_poolish", - "position": 3, - "ingredient_id": "poolish", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_yeast_fresh", - "position": 4, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_09_kalamata_olives", - "position": 6, - "ingredient_id": "kalamata_olives", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": "pitted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_10_herbes_de_provence", - "position": 7, - "ingredient_id": "herbes_de_provence", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "2 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "poolish", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 16.67, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "poolish", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 16.67, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "poolish", - "id": "line_03_yeast_fresh", - "position": 3, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Poolish:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the flour, water, and yeast until blended. Cover and allow to ferment at room temperature for 6-12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a hook attachment, combine the flour, water, poolish, and yeast and mix on low speed for 2-3 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the salt and mix for approximately 5 minutes to fully develop gluten.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Add the olives and herbs in the last 30 seconds of mixing or knead in by hand.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Place the dough in an oiled bowl. Cover and bulk proof for 2 hours, turning the dough after 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Divide into 580 g (20.5 oz) pieces and pre-shape into rounds. Cover and bench rest for 5-10 minutes. Shape into boules or bâtards.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Proof, slash, and spray the loaves with water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Bake at 475°F (246°C) with the oven fan off for 5 minutes. Continue baking at 450°F (232°C) until dark brown, or until the internal temperature is 210°F (99°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "key_lime_pie", - "schema_version": 2, - "save_version": 6, - "title": "Key Lime Pie", - "summary": "Yield: two 10-inch cake or pie pans", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 2855, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 10-inch cake or pie pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_key_lime_juice", - "position": 1, - "ingredient_id": "key_lime_juice", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_lime_zest", - "position": 2, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_condensed_milk", - "position": 4, - "ingredient_id": "condensed_milk", - "subrecipe_id": null, - "quantity": 1955, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Filling:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, mix all of the ingredients until smooth. This step may be done by hand if desired.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the filling into blind baked key lime pie crusts.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 275°F (135°C) just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Crust:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Combine all of the ingredients until moistened.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Evenly press into the bottom of parchment lined cake or pie pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350°F (177°C) until lightly browned and just set (about 5-7 minutes). Allow to cool before pouring the filling over the crust.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "key_lime_pie_p56", - "schema_version": 2, - "save_version": 6, - "title": "Key Lime Pie", - "summary": "Yield: two 10-inch cake or pie pans", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 450, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 10-inch cake or pie pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_graham_cracker_crumbs", - "position": 1, - "ingredient_id": "graham_cracker_crumbs", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 1200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 700, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 250, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_zest", - "position": 5, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 5, - "basis_member": 0, - "optional": 0, - "notes": "optional", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Filling:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, mix all of the ingredients until smooth. This step may be done by hand if desired.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the filling into blind baked key lime pie crusts.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 275°F (135°C) just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Crust:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Combine all of the ingredients until moistened.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Evenly press into the bottom of parchment lined cake or pie pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350°F (177°C) until lightly browned and just set (about 5-7 minutes). Allow to cool before pouring the filling over the crust.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "korean_coater_mix", "schema_version": 2, @@ -79404,5147 +21740,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "kouign_amann", - "schema_version": 2, - "save_version": 6, - "title": "Kouign-Amann", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 4315, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Kouign-amann are done baking when they have a rich, caramelized brown color on top and are cooked through in the center.\",\"Upon removing from the oven, place upside-down onto a cooling rack to cool. Once cool, flip upright.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "dough_packet_detrempe", - "position": 1, - "name": "Dough Packet (Détrempe)", - "notes_json": "[]" - }, - { - "id": "butter_packet_beurrage", - "position": 2, - "name": "Butter Packet (Beurrage)", - "notes_json": "[]" - }, - { - "id": "sugar_salt_garnish", - "position": 3, - "name": "Sugar/Salt Garnish", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "butter_packet_beurrage", - "id": "line_09_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 50.63, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "butter_packet_beurrage", - "id": "line_10_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 16.46, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "butter_packet_beurrage", - "id": "line_11_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 1.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 565, - "unit_id": "gram", - "percentage": 71.52, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_02_flour_cake", - "position": 2, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 28.48, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": 13.92, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 10.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 1.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_06_yeast_fresh", - "position": 6, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 42, - "unit_id": "gram", - "percentage": 5.32, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 275, - "unit_id": "gram", - "percentage": 34.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough_packet_detrempe", - "id": "line_08_milk_whole", - "position": 8, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 25.32, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sugar_salt_garnish", - "id": "line_12_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 37.97, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sugar_salt_garnish", - "id": "line_13_fine_sea_salt", - "position": 2, - "ingredient_id": "fine_sea_salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.63, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sugar_salt_garnish", - "id": "line_14_total_paton_weight", - "position": 3, - "ingredient_id": "total_paton_weight", - "subrecipe_id": null, - "quantity": 1950, - "unit_id": "gram", - "percentage": 246.84, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the dough packet ingredients until combined. Switch to a hook attachment and mix on medium speed for about 2-3 minutes, or until a smooth, slightly sticky dough comes together.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Place the dough in a buttered bowl, cover with plastic wrap and let it bulk proof for 30-60 minutes at room temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Roll the dough into a rectangle about ⅜-inch thick, wrap in plastic wrap, and freeze for about 30 minutes, or until firm but not frozen.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a paddle attachment, mix the butter packet ingredients until light and creamy, but still cold. Shape the butter into a square ½ the size of the rectangle of détrempe. The beurrage should be of similar consistency as the détrempe when assembling together.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Place the butter inside the dough and fold over to make a package.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Give the dough 3 single turns, resting for 30 minutes in between each turn.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Butter muffin pans and coat with about ¼ of the sugar/salt mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Roll the paton to ¼-inch thick, while sprinkling both sides generously with about ½ of the sugar/salt mixture. Be sure to lightly roll the sugar/salt mixture onto the surfaces of both sides of the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Cut the dough into 3½-inch squares.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Pick up the squares one at a time, gently place them into the muffin pan cavities and fold the corners into the center.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Sprinkle the tops with the remaining sugar/salt mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Let proof for about 45-60 minutes before baking for a lighter pastry, or refrigerate for up to a day for a fluffier, yeasty pastry.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Bake at 375°F (191°C) for 12 minutes, then lower the temperature to 350°F (177°C) to finish (about another 12 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lace_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Lace Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1890, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 482, - "unit_id": "gram", - "percentage": 106.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_light_corn_syrup", - "position": 3, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 110.13, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the butter in a saucepan. Whisk the sugar and corn syrup into the melted butter and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk in the sifted dry ingredients and bring back to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Roll into desired sized balls and place on a silicone baking mat. Lightly flatten each ball with the palm of your hand.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lavender_honey_almond_bars", - "schema_version": 2, - "save_version": 6, - "title": "Lavender-Honey Almond Bars", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 901.25, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_lavender_buds", - "position": 2, - "ingredient_id": "lavender_buds", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_glucose_syrup", - "position": 5, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lavender_honey", - "position": 7, - "ingredient_id": "lavender_honey", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_almond", - "position": 8, - "ingredient_id": "almond", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_candied_orange_peel", - "position": 9, - "ingredient_id": "candied_orange_peel", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "diced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Prepare a parchment-lined half sheet pan with pate sucrée rolled to ⅛-inch thick. Chill for at least 30 minutes, then lightly blind bake.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "sheet_pan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the cream and lavender buds to a boil. Cover and set aside to infuse for 30 minutes, then strain and discard the lavender. Rescale to the original weight with additional cream.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the sugar, water, and glucose in a saucepan and cook to a caramel stage.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk in the butter and honey and bring to a boil. Add the infused cream.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cook to 255°F (124°C) and then add in the sliced almonds, candied orange, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour the mixture into the blind baked shell and spread evenly with an oiled off-set spatula.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177ºC) until bubbly (about 8-12 minutes). Top with fleur de sel while still warm from the oven if desired.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lavender_vanilla_glaze", - "schema_version": 2, - "save_version": 6, - "title": "Lavender-Vanilla Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1470, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 7.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 275, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lavender_honey", - "position": 4, - "ingredient_id": "lavender_honey", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lavender_buds", - "position": 5, - "ingredient_id": "lavender_buds", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_confectioners_sugar", - "position": 9, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 1135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_purple_gel_food_coloring", - "position": 10, - "ingredient_id": "purple_gel_food_coloring", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 drop", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, heat the water, honey, lavender, extract, vanilla bean, and salt to 140°F (60°C), then add the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the liquid before adding to the sugar to remove the lavender particles and vanilla pod.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sift the sugar into a bowl. Add the strained liquid and stir until there are no lumps.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the food coloring and some additional lavender flowers to taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover with plastic wrap and let cool to room temperature before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Reheat if the glaze gets too thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Try this glaze in the summer with our yeast doughnuts on page 492.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_basil_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Lemon-Basil Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 740, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_basil_leaves", - "position": 2, - "ingredient_id": "basil_leaves", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a food processor, grind the sugar, basil leaves, and zest until well blended and fragrant.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "food_processor" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the water, juice, butter, and ½ of the lemon-basil sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the eggs and remaining lemon-basil sugar until light.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Temper the hot liquid into the egg mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Return everything to the saucepan and cook on medium-low heat, stirring continuously, until thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain the sauce through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Chill immediately and keep refrigerated.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_cake", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Cake", - "summary": "Yield: two 9-inch cake pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2180, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch cake pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 43.24, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 497, - "unit_id": "gram", - "percentage": 94.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": 0.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 76.19, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 525, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_powder", - "position": 6, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 3.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.57, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_buttermilk", - "position": 8, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 343, - "unit_id": "gram", - "percentage": 65.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_lemon_juice", - "position": 9, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 163, - "unit_id": "gram", - "percentage": 31.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and zest.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately add the sifted dry and wet ingredients in 3 additions until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_chiffon_cake", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Chiffon Cake", - "summary": "Yield: one full sheet pan or one 10-inch tube pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1285, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan or one 10-inch tube pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 55.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_sugar", - "position": 3, - "ingredient_id": "vanilla_sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 55.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_soda", - "position": 5, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 61.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_canola_oil", - "position": 7, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": 48.46, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_water", - "position": 8, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 156, - "unit_id": "gram", - "percentage": 68.72, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_lemon_juice", - "position": 9, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_lemon_zest", - "position": 10, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 0.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_whites", - "position": 11, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 132.16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_sugar", - "position": 12, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 22.03, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_cream_of_tartar", - "position": 13, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks, oil, water, juice, and zest together.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the wet ingredients into the sifted dry ingredients and thoroughly mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the meringue into the batter just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_curd", - "schema_version": 2, - "save_version": 7, - "title": "Lemon Curd", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": "hybrid", - "scaling_basis_id": "formula_basis", - "scaling_basis_quantity": 100, - "scaling_basis_unit_id": "gram", - "notes_json": "[]", - "source_json": "{\"schema_version\":2,\"id\":\"lemon_curd\",\"title\":\"Lemon Curd\",\"categories\":[\"sauce\"],\"tags\":[\"dessert-sauce\",\"filling\"],\"yield\":{\"amount\":{\"quantity\":242.22,\"unit_id\":\"gram\"},\"basis\":\"theoretical\"},\"scaling\":{\"mode\":\"hybrid\",\"basis_id\":\"formula_basis\",\"basis_amount\":{\"quantity\":100,\"unit_id\":\"gram\"}},\"components\":[{\"id\":\"main\",\"name\":\"Main\",\"items\":[{\"id\":\"line_01_sugar\",\"reference\":{\"ingredient_id\":\"sugar\"},\"amount\":{\"quantity\":100,\"unit_id\":\"gram\"},\"percentage\":100,\"basis_member\":true},{\"id\":\"line_02_lemon_juice\",\"reference\":{\"ingredient_id\":\"lemon_juice\"},\"amount\":{\"quantity\":50,\"unit_id\":\"gram\"},\"percentage\":50},{\"id\":\"line_03_egg_yolk\",\"reference\":{\"ingredient_id\":\"egg_yolk\"},\"amount\":{\"quantity\":48.89,\"unit_id\":\"gram\"},\"percentage\":48.89},{\"id\":\"line_04_butter\",\"reference\":{\"ingredient_id\":\"butter\"},\"amount\":{\"quantity\":40,\"unit_id\":\"gram\"},\"percentage\":40},{\"id\":\"line_05_lemon_zest\",\"reference\":{\"ingredient_id\":\"lemon_zest\"},\"amount\":{\"quantity\":3.33,\"unit_id\":\"gram\"},\"percentage\":3.33}]}],\"equipment_ids\":[\"blender\",\"mixing_bowl\"],\"steps\":[{\"id\":\"step_01\",\"order\":1,\"instruction\":\"Combine sugar, egg yolks, lemon juice, and lemon zest in a stainless steel bowl over a double boiler.\",\"component_ids\":[\"main\"]},{\"id\":\"step_02\",\"order\":2,\"instruction\":\"Stir occasionally until the mixture thickens to a ketchup-like consistency.\",\"component_ids\":[\"main\"]},{\"id\":\"step_03\",\"order\":3,\"instruction\":\"Remove from heat and strain into a clean container.\",\"component_ids\":[\"main\"]},{\"id\":\"step_04\",\"order\":4,\"instruction\":\"Add butter at 90°F (32°C) to 95°F (35°C) and blend with an immersion blender.\",\"component_ids\":[\"main\"]},{\"id\":\"step_05\",\"order\":5,\"instruction\":\"Cover to the surface and refrigerate.\",\"component_ids\":[\"main\"]}],\"notes\":[\"Formula uses a nominal 100 g basis; review the yield before use.\"]}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [ - "blender", - "mixing_bowl" - ], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_juice", - "position": 3, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_zest", - "position": 5, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the juice, ½ of the sugar, and zest to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk together the eggs and the other ½ of the sugar until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the juice mixture comes to a boil, temper about ⅓ of the hot mixture into the eggs. Use a rubber spatula to scrape all of the tempered egg mixture into the saucepan and continue to whisk on medium-low heat until the mixture thickens and reaches the scalding point.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer. Allow the hot curd to cool for about 5-10 minutes, stirring occasionally.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Using an immersion blender, blend in the bloomed and drained gelatin, followed by the butter.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "There are several ways a chef can prepare lemon curd. In this procedure we maintain the emulsion of the butter yielding a smoother and creamier mouthfeel.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_granite", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Granité", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 960, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Grind the sugar and zest together in a food processor until well ground.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, whisk the lemon zest sugar into the water and heat to185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the bloomed gelatin to dissolve.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill to room temperature. Once cool, strain through a fine-mesh strainer and whisk in the juice.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_mousse_with_lemon_curd", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Mousse with Lemon Curd", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2635, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_curd", - "position": 4, - "ingredient_id": "lemon_curd", - "subrecipe_id": null, - "quantity": 1200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_confit", - "position": 5, - "ingredient_id": "lemon_confit", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "optional", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the bloomed and drained gelatin and whisk into the curd and optional confit until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the curd into the meringue, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_olive_oil_madeleines", - "schema_version": 2, - "save_version": 6, - "title": "Lemon-Olive Oil Madeleines", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1895, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe yields a moist madeleine that will not dry out as quickly as a traditional madeleine.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_brown_sugar", - "position": 6, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_invert_sugar", - "position": 7, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_all_purpose", - "position": 8, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_powder", - "position": 9, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_olive_oil", - "position": 11, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, melt the butter with the milk and zest. Bring to a scald and set aside until warm.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk the eggs and sugars until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the warm butter mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Gradually whisk in the oil.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 375°F (191°C) until the madeleines spring back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_poppy_seed_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Poppy Seed Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1694, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 338, - "unit_id": "gram", - "percentage": 84.5, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 62.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 62.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_semolina", - "position": 7, - "ingredient_id": "semolina", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_milk_whole", - "position": 9, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 31.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sour_cream", - "position": 10, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 31.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_candied_lemon_zest", - "position": 11, - "ingredient_id": "candied_lemon_zest", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_poppy_seeds", - "position": 12, - "ingredient_id": "poppy_seeds", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 6.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately fold in the sifted dry and wet ingredients, beginning and ending with the dry.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold in the candied zest and poppy seeds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_poppy_seed_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Poppy Seed Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2048, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 72.73, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": 0.73, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sour_cream", - "position": 4, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 45.45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_powder", - "position": 6, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.82, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.45, - "basis_member": 0, - "optional": 0, - "notes": "1¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_poppy_seeds", - "position": 8, - "ingredient_id": "poppy_seeds", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 5.45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 45.45, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Cake:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whip the eggs, sugar, and zest until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sour cream and mix to incorporate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sift the dry ingredients, then mix with the poppy seeds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the dry ingredients to the egg mixture and mix until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Slowly whisk the melted butter into the batter as to maintain an emulsion.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "When the cake is almost finished baking, brush some lemon soaking syrup over the top of the cakes several times and put back in the oven for just a few minutes to finish.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Soaking Syrup:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Combine all the ingredients over a water bath until liquified and smooth.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_poppy_seed_pound_cake_p100", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Poppy Seed Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 145, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_lemon_juice", - "position": 1, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_icing_fondant", - "position": 3, - "ingredient_id": "icing_fondant", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Cake:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whip the eggs, sugar, and zest until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sour cream and mix to incorporate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sift the dry ingredients, then mix with the poppy seeds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the dry ingredients to the egg mixture and mix until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Slowly whisk the melted butter into the batter as to maintain an emulsion.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "When the cake is almost finished baking, brush some lemon soaking syrup over the top of the cakes several times and put back in the oven for just a few minutes to finish.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Soaking Syrup:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Combine all the ingredients over a water bath until liquified and smooth.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_pudding_cakes", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Pudding Cakes", - "summary": null, - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1655, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": 115, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 160, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lemon_juice", - "position": 7, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 230, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lemon_zest", - "position": 8, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_milk_whole", - "position": 9, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 450, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_whites", - "position": 10, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 240, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_sugar", - "position": 11, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 130, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": 0.6, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Melt the butter and whisk into the egg yolks.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the first weight of sugar and flour together, then whisk into the yolk mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk in the juice, zest, and milk.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed gelatin, and whisk into the lemon mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Make a medium-soft peak French meringue with the second weight of sugar, egg whites, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the meringue into the lemon mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Portion into buttered and sugared ramekins.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Bake in a water bath at 325°F (163°F) just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 645, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dextrose", - "position": 2, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 235, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 158, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sorbet_stabilizer", - "position": 5, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Rub the zest with ½ of the sugar until fragrant. Combine the remaining sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the lemon zest sugar and the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, whisk in the juice and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender, then strain through a fine-mesh strainer before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lemon_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Lemon Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1650, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_lemon", - "position": 1, - "ingredient_id": "lemon", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "juice & zest", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk together the juice, zest, eggs, sugar, and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the melted butter into the lemon mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm the filling over a water bath until about 120°F (49°C). Using an immersion blender, blend everything together then strain the mixture through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Remove excess air bubbles from the top of the custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 250°F (121°C) in blind baked tart shells just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "light_almond_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Light Almond Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"This cake will yield one thin full sheet pan, or one thicker half sheet pan.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_flour", - "position": 1, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 3.13, - "basis_member": 0, - "optional": 0, - "notes": "¾ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_almond_extract", - "position": 7, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.04, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 225, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 83.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cream_of_tartar", - "position": 10, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_flour_cake", - "position": 11, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the almond flour, powdered sugar, salt, whole eggs, yolks, and extracts until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar. Gently fold the meringue into the almond mixture until streaky. Fold in the cake flour until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 350ºF (177ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lightened_vanilla_creme_mousseline", - "schema_version": 2, - "save_version": 6, - "title": "Lightened Vanilla Crème Mousseline", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2333, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 7.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 960, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 268, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cornstarch", - "position": 7, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 71, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 219, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_heavy_cream", - "position": 10, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 609, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Prepare a pastry cream with the milk, vanilla beans, sugar, egg yolks, cornstarch, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Transfer the hot pastry cream to a mixer fitted with a paddle attachment and mix in the bloomed and drained gelatin. Continue to mix until slightly warm, 110ºF (43ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the pastry cream is slightly warm, add the butter a little at a time, beating until completely incorporated and the mixture is light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whip the cream to medium peaks and fold into the cooled pastry cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lime_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Lime Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 492, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_invert_sugar", - "position": 2, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 107, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lime_zest", - "position": 4, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lime_juice", - "position": 7, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 205, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_rum", - "position": 9, - "ingredient_id": "rum", - "subrecipe_id": null, - "quantity": 26, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the chocolate and invert sugar in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream to a boil. Add the zest and let infuse for 30 minutes, then strain.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a crème anglaise with the lime infused cream, egg yolks, and granulated sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Heat the juice to 165°F (74°C) and add it to the crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour the warm crème anglaise mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir in the softened butter, followed by the rum.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lime_curd", - "schema_version": 2, - "save_version": 6, - "title": "Lime Curd", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1380, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lime_juice", - "position": 3, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_zest", - "position": 5, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the juice, ½ of the sugar, and zest to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk together the eggs and the other ½ of the sugar until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the juice mixture comes to a boil, temper about ⅓ of the hot mixture into the eggs. Use a rubber spatula to scrape all of the tempered egg mixture into the saucepan and continue to whisk on medium-low heat until the mixture thickens and reaches the scalding point.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer. Allow the hot curd to cool for about 5-10 minutes, stirring occasionally.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Using an immersion blender, blend in the bloomed and drained gelatin, followed by the butter.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lime_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Lime Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1660, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lime_puree", - "position": 4, - "ingredient_id": "lime_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the pâte à bombe. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "linzer_dough", - "schema_version": 2, - "save_version": 8, - "title": "Linzer Dough", - "summary": "This signature Austrian classic is known for its berry preserve filling and tender lattice top dough. It is named after the Austrian city of Linz.", - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1550, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 294, - "unit_id": "gram", - "percentage": 53.85, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 318, - "unit_id": "gram", - "percentage": 58.24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_almond_flour", - "position": 3, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 41.21, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 27.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 546, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.92, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the almond flour to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "lo_mein_sauce", "schema_version": 2, @@ -84732,389 +21927,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "lychee_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Lychee Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2322, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 32, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 700, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lychee_puree", - "position": 4, - "ingredient_id": "lychee_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "lychee_vanilla_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Lychee-Vanilla Panna Cotta", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2122, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 820, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_gelatin_sheet", - "position": 5, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lychee_puree", - "position": 7, - "ingredient_id": "lychee_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, sugar, salt, and vanilla bean to a boil; set aside to infuse while the gelatin is blooming.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Off the heat, add the bloomed and drained gelatin to the mixture and gently whisk to minimize air bubbles.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the puree and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "mac_cheese_sauce", "schema_version": 2, @@ -85221,3150 +22033,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "macarons", - "schema_version": 2, - "save_version": 6, - "title": "Macarons", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Do not open the oven door during the baking process. Total baking time will be determined based on the size of the macaron and calibration of the oven.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_10x_sugar", - "position": 1, - "ingredient_id": "10x_sugar", - "subrecipe_id": null, - "quantity": 419, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_almond_flour", - "position": 2, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 357, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whites", - "position": 3, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 153, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 419, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 96, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 153, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cream_of_tartar", - "position": 7, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a food processor, grind the sugar and flour until fine. Pass through a sifter and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the ground mixture, the first weight of egg whites, and desired amount of gel food coloring until a smooth paste forms. Cover with plastic wrap and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make an Italian meringue with the sugar, water, second weight of egg whites, and tartar. Cook the sugar to 243°F (117°C) and time the sugar with the egg whites so the whites are at medium peaks when the sugar reaches the proper temperature. Whisk until tepid, about 120°F (49°C).", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the meringue into the reserved paste in 3 additions, then macaronage the mixture until a ribbon flattens back into the mix in about 10 seconds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pipe into rounds about 1¼-inches in diameter on a silicone baking mat. Set aside to air dry for 60 minutes to develop a shell before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake 300°F (149°C) for 11-12 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "malt_creme_anglaise", - "schema_version": 2, - "save_version": 6, - "title": "Malt Crème Anglaise", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1475, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Crème anglaise has a shelf-life up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_malt_powder", - "position": 3, - "ingredient_id": "malt_powder", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the milk, cream, malt powder, and ½ of the sugar to a boil. Meanwhile, whisk the egg yolks, the other ½ of the sugar, and salt until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Temper about ⅓ of the hot milk mixture into the yolk mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Return everything to the saucepan and cook on medium-low heat, stirring continuously, until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the crème anglaise through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and keep refrigerated.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mandarin_champagne_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Mandarin Champagne Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_mandarin_orange_juice", - "position": 1, - "ingredient_id": "mandarin_orange_juice", - "subrecipe_id": null, - "quantity": 665, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_powdered_glucose", - "position": 2, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_mandarin_orange_zest", - "position": 4, - "ingredient_id": "mandarin_orange_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sorbet_stabilizer", - "position": 5, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_champagne", - "position": 6, - "ingredient_id": "champagne", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the juice in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the glucose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Rub the zest with ½ of the sugar until fragrant. Combine the remaining sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the juice until warm, 105°F (40°C); whisk in the mandarin zest sugar and the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Weigh the champagne, previously chilled in the refrigerator, and pour into the ice cream machine at the beginning of the spinning process.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "kitchen_scale" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mandarin_lime_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Mandarin-Lime Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_mandarin_orange_puree", - "position": 1, - "ingredient_id": "mandarin_orange_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% Sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_apricot_puree", - "position": 2, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% Sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_confectioners_sugar", - "position": 3, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 188, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lime_zest", - "position": 4, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_ginger_juice", - "position": 6, - "ingredient_id": "ginger_juice", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, whisk the purees along with the sugar and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and reduce until thickened to desired consistency, stirring periodically.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the zest and cool the sauce down immediately over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the juices.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mandarin_orange_creme_brulee", - "schema_version": 2, - "save_version": 6, - "title": "Mandarin Orange Crème Brûlée", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2167, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Crème brûlée has a shelf life up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_oil", - "position": 3, - "ingredient_id": "orange_oil", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_orange_zest", - "position": 4, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_mandarin_orange_puree", - "position": 5, - "ingredient_id": "mandarin_orange_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, milk, oil, and zest to a boil; cover and infuse for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Reheat the cream mixture with about ½ of the sugar until incorporated, then add the puree.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk together the other ½ of the sugar with the whole eggs, yolks, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Temper the hot cream into the egg yolk mixture until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Remove excess air bubbles from the top of the crème brûlée custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mandarin_orange_curd", - "schema_version": 2, - "save_version": 6, - "title": "Mandarin Orange Curd", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1423, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_mandarin_orange_puree", - "position": 3, - "ingredient_id": "mandarin_orange_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_orange_zest", - "position": 5, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the puree, ½ of the sugar, and zest to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk together the whole eggs, yolks, and the other ½ of the sugar until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the puree mixture comes to a boil, temper ⅓ of the hot mixture into the eggs. Use a rubber spatula to scrape all of the tempered egg mixture into the saucepan and continue to whisk on medium-low heat until the mixture thickens and reaches the scalding point.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer. Allow the hot curd to cool for about 5-10 minutes, stirring occasionally.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Using an immersion blender, blend in the bloomed and drained gelatin, followed by the butter.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mandarin_orange_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Mandarin Orange Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2037, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 27, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_mandarin_orange_puree", - "position": 4, - "ingredient_id": "mandarin_orange_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mango_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Mango Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2350, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_mango_puree", - "position": 4, - "ingredient_id": "mango_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mango_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Mango Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 408, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dextrose", - "position": 2, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sorbet_stabilizer", - "position": 4, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_mango_puree", - "position": 5, - "ingredient_id": "mango_puree", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lime_juice", - "position": 6, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, whisk in the puree and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "maple_creme_mousseline", - "schema_version": 2, - "save_version": 6, - "title": "Maple Crème Mousseline", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"See the Chef's Notes in the Basic Crème Mousseline recipe on page 179.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": 1333.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_pure_maple_syrup", - "position": 2, - "ingredient_id": "pure_maple_syrup", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 1000, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 4.17, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cornstarch", - "position": 4, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 166.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 666.67, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_maple_extract", - "position": 9, - "ingredient_id": "maple_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 8.33, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the milk, maple syrup, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Meanwhile, whisk the cornstarch, flour, whole eggs, and yolks in a bowl until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper the egg mixture with the hot milk and return everything back to the pan.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bring the mixture to a boil, whisking continuously for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Transfer the hot pastry cream to a bowl of a mixer and paddle until room temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Add the butter and extract to the pastry cream and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "marble_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Marble Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1772, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 75, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_cake", - "position": 2, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 25, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 470, - "unit_id": "gram", - "percentage": 117.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_invert_sugar", - "position": 6, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sour_cream", - "position": 8, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": 70, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_vanilla_extract", - "position": 10, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_vanilla_cake_batter", - "position": 11, - "ingredient_id": "vanilla_cake_batter", - "subrecipe_id": null, - "quantity": 530, - "unit_id": "gram", - "percentage": 132.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cocoa_powder", - "position": 12, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_milk_whole", - "position": 13, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the dry ingredients with the invert sugar and butter until sandy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the sour cream, eggs, and extract until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add ½ of the wet ingredients to the batter and mix on low speed until combined. Add the remaining wet ingredients and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Scrape down the bowl and mix on medium speed for 2-3 minutes, or until smooth and aerated.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Mix 530 grams (18.7 oz) of the vanilla cake batter along with the cocoa powder and milk to make a chocolate cake batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Place the chocolate cake batter on top of the vanilla cake batter and lightly fold together until they marble. Divide into prepared loaf pans.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "marquise_au_chocolat", - "schema_version": 2, - "save_version": 6, - "title": "Marquise au Chocolat", - "summary": "Yield: one 9-inch loaf pan", - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1240, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch loaf pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_valrhona_extra_bitter_chocolate", - "position": 1, - "ingredient_id": "valrhona_extra_bitter_chocolate", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "61%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cocoa_powder", - "position": 10, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Line a loaf pan or terrine mold with plastic wrap and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and salt until light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the melted chocolate and mix until homogenous; keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Make a pâte à bombe with the egg yolks, first weight of sugar, and water. Whip until slightly warm, then whisk that into the warm chocolate-butter mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Make a Swiss meringue with the egg whites and second weight of sugar. Whip until mediumsoft peaks and slightly warm.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Place the meringue and whipped cream on top of the chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Sift the cocoa powder directly over the top of the meringue and whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Quickly fold everything together with a balloon whisk.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Fill the loaf pan or terrine mold with the mousse.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Chill in the refrigerator until set.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "marshmallows", - "schema_version": 2, - "save_version": 6, - "title": "Marshmallows", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1651.25, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 680, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_glucose_syrup", - "position": 5, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_invert_sugar", - "position": 6, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_honey", - "position": 7, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_bean", - "position": 8, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in the first weight of water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, cook the sugars, second weight of water, glucose, and honey to 252°F (122°C).", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the cooked sugar into a mixing bowl and allow to cool to 212°F (100°C).", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently melt the bloomed gelatin and add it to the syrup.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "In a mixer fitted with a whisk attachment, whip the syrup/gelatin mixture on high speed until well aerated. Whisk in the vanilla bean seeds and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Spread the marshmallow mixture onto an oiled parchment-lined half sheet pan. Place another piece of oiled parchment paper on top and flatten until level and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Dust the top with a sifted 50/50 mixture of powdered sugar and cornstarch and allow to set.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mascarpone_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Mascarpone Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1370, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_mascarpone", - "position": 7, - "ingredient_id": "mascarpone", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lemon_zest", - "position": 8, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a pâte à bombe with the sugar, water, and egg yolks; whip until 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the bloomed and drained gelatin and add it to the slightly warm pâte à bombe to combine. Add the mascarpone and zest to the pate à bombe mixture and whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold in the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mascarpone_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Mascarpone Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1645, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 670, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_powdered_glucose", - "position": 2, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sorbet_stabilizer", - "position": 4, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_mascarpone", - "position": 5, - "ingredient_id": "mascarpone", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_zest", - "position": 6, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the glucose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, blend in the mascarpone and zest with an immersion blender and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "mashed_potato", "schema_version": 2, @@ -89453,2889 +23121,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "milk_chocolate", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1284, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_custard_base", - "position": 1, - "ingredient_id": "custard_base", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_gelatin_sheet", - "position": 2, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 9, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_milk", - "position": 4, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 330, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mousse:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin and add it to the warm crème anglaise along with the melted chocolate; whisk until combined.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold in the whipped cream. The mousse should be fluid enough to pour and settle without peaks.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_banana_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate-Banana Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_milk", - "position": 1, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "40%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_banana_puree", - "position": 2, - "ingredient_id": "banana_puree", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 72, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_banana_liqueur", - "position": 5, - "ingredient_id": "banana_liqueur", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the puree and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the hot puree mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter, followed by the liqueur.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1777, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 585, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 334, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 88, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 88, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_chocolate_milk", - "position": 9, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 440, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the milk and first weight of sugar to a boil. Meanwhile, whisk the egg yolks, second weight of sugar, and salt until light and thick. Temper ⅓ of the hot milk mixture into the yolk mixture. Return everything back to the saucepan and cook on medium-low heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, add the chopped chocolate, let stand for a few minutes, then emulsify until smooth. Whisk in the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled chocolate crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_caramel_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate Caramel Mousse -", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2253, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 22, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 675, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_valrhona_guanaja", - "position": 9, - "ingredient_id": "valrhona_guanaja", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "70%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_valrhona_tanariva", - "position": 10, - "ingredient_id": "valrhona_tanariva", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "33%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the first weight of cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a deep amber dry caramel with the first weight of sugar and deglaze with the second weight of cream in 3 additions.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a crème anglaise with the caramel cream, egg yolks, second weight of sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain the caramel crème anglaise over the chopped chocolates, let stand for a few minutes, then whisk until smooth. Whisk in the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Let cool to 95°F (35°C), then fold in the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_lemon_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate-Lemon Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 95, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_lemon_juice", - "position": 2, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 24, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_milk", - "position": 5, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 616, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "40%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 47, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_gin_or_lemon_vodka", - "position": 7, - "ingredient_id": "gin_or_lemon_vodka", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, juice, zest, and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Place the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the hot mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter, followed by the alcohol.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1250, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Alternatively, the egg yolk mixture can be cooked in a microwave by cooking the mixture in 20-30 second intervals and whisking in between each interval until thickened.\",\"The addition of milk powder stabilizes the foam structure in the eggs and whipped cream by preventing air bubbles from collapsing, resulting in a lighter texture to the mousse.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_milk", - "position": 1, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_gelatin_sheet", - "position": 2, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 470, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_milk_powder", - "position": 8, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the egg yolks, whole eggs, water, milk powder, and salt over a water bath until very thick, add the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Transfer the mixture to a mixer fitted with a whisk attachment and whip just until warm.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the warm melted chocolate into the warm yolk mixture, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_nut_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate-Nut Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1150, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_nut_paste", - "position": 4, - "ingredient_id": "nut_paste", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "unsweetened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_milk", - "position": 5, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, sugar, salt, and nut paste to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Pour over the chocolate, allow to stand for a few minutes, then whisk until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the eggs into the chocolate mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain the filling through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove excess air bubbles from the top of the custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 225°F (107°C) in blind baked tart shells just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_p245", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1291, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_custard_base", - "position": 1, - "ingredient_id": "custard_base", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_gelatin_sheet", - "position": 2, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 11, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_white", - "position": 4, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 325, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mousse:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin and add it to the warm crème anglaise along with the melted chocolate; whisk until combined.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold in the whipped cream. The mousse should be fluid enough to pour and settle without peaks.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_praline_feuilletine", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate Praline Feuilletine", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 975, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cocoa_butter", - "position": 1, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_milk", - "position": 2, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_praline_paste", - "position": 3, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_feuilletine", - "position": 5, - "ingredient_id": "feuilletine", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the cocoa butter over a water bath, add the chocolate and melt together, stirring until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the chocolate mixture with the praline paste and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the feuilletine until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_chocolate_raspberry_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Milk Chocolate-Raspberry Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_milk", - "position": 1, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "40%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_raspberry_puree", - "position": 2, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 72, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_raspberry_liqueur", - "position": 5, - "ingredient_id": "raspberry_liqueur", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the puree and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the hot puree mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter, followed by the liqueur.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "milk_sponge_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Milk Sponge Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1385, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 257, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_baking_powder", - "position": 2, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 11, - "unit_id": "gram", - "percentage": 4.28, - "basis_member": 0, - "optional": 0, - "notes": "2¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.95, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 54.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 27.24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.95, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 136.19, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 54.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 368, - "unit_id": "gram", - "percentage": 143.19, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_invert_sugar", - "position": 10, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 15.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Warm the milk and butter together until the butter is melted, then stir in the extract.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the whole eggs, yolks, and sugars over a water bath until warm, 110ºF (43ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a whisk attachment, whisk the warmed egg mixture until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Carefully fold the sifted dry ingredients into the egg foam.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Sacrifice a small amount of the batter into the warm milk mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Gently fold the milk mixture into the egg foam.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350ºF (177ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mint_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Mint Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_mint_leaves", - "position": 2, - "ingredient_id": "mint_leaves", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_white", - "position": 4, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 590, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 64, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_mint_liqueur", - "position": 6, - "ingredient_id": "mint_liqueur", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_mint_paste", - "position": 7, - "ingredient_id": "mint_paste", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream and mint leaves to a boil; set aside to infuse.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the infused cream through a fine-mesh strainer, then rescale to the original weight.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a saucepan, bring the infused cream and sugar to a boil and pour over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir in the softened butter, followed by the liqueur and paste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mint_granite", - "schema_version": 2, - "save_version": 6, - "title": "Mint Granité", - "summary": "Use this base recipe for other fresh herbs like spearmint, lemon balm, basil, cilantro, rosemary, etc. The amount of mint leaves and paste in the recipe is a guideline only. You will need to adjust based on your ingredients and taste.", - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1820, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"It is best to grind the mint leaves and sugar together right before you make the granité. This method preserves the color and aroma of the leaves.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_mint_leaves", - "position": 2, - "ingredient_id": "mint_leaves", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "3 bunches", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_gelatin_sheet", - "position": 3, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 1500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_mint_paste", - "position": 7, - "ingredient_id": "mint_paste", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Grind the sugar and mint leaves together in a food processor until well ground and fragrant.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, heat the water until warm. Whisk in the mint sugar and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the bloomed gelatin to dissolve. Chill to room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Once cool, strain through a fine-mesh strainer and whisk in the juice and paste.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Measure and adjust the °Brix between 15°-20° depending on your taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mixed_berry_strudel_filling", - "schema_version": 2, - "save_version": 6, - "title": "Mixed Berry Strudel Filling", - "summary": "Yield: one 20 to 24-inch strudel", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1055.6, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 20 to 24-inch strudel\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_strawberries", - "position": 1, - "ingredient_id": "strawberries", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "hulled & quartered", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_raspberries", - "position": 2, - "ingredient_id": "raspberries", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_blackberries", - "position": 3, - "ingredient_id": "blackberries", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_blueberries", - "position": 4, - "ingredient_id": "blueberries", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_framboise_eau_de_vie", - "position": 5, - "ingredient_id": "framboise_eau_de_vie", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_zest", - "position": 6, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_bean", - "position": 7, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_genoise", - "position": 9, - "ingredient_id": "genoise", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix the berries, eau-de-vie, zest, vanilla bean seeds, and salt until well combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gently mix the genoise cubes into the berry mixture until thoroughly mixed.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "mocha_cremeux", - "schema_version": 2, - "save_version": 6, - "title": "Mocha Crémeux", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The addition of sour cream and mascarpone in the recipe gives this crèmeux a rich and creamy texture similar to Greek yogurt.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 415, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chocolate_dark", - "position": 6, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 86, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sour_cream", - "position": 7, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_mascarpone", - "position": 8, - "ingredient_id": "mascarpone", - "subrecipe_id": null, - "quantity": 137, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_coffee_extract", - "position": 9, - "ingredient_id": "coffee_extract", - "subrecipe_id": null, - "quantity": 21, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, sugar, and salt to a scald.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate and add to the scalded cream. Stir continuously to emulsify and bring the mixture to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Off the heat, add the sour cream, mascarpone, and extract to the hot mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the bloomed and drained gelatin and whisk until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "mod_pizza_dough", "schema_version": 2, @@ -92499,430 +23284,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "moist_honey_cake", - "schema_version": 2, - "save_version": 6, - "title": "Moist Honey Cake", - "summary": "Yield: one angel food pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one angel food pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - }, - { - "id": "honey_glaze", - "position": 2, - "name": "Honey Glaze", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "honey_glaze", - "id": "line_19_honey", - "position": 1, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 23.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "honey_glaze", - "id": "line_20_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.9, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 35.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 4.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_canola_oil", - "position": 3, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": 51.19, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_honey", - "position": 4, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 80.95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_coffee", - "position": 5, - "ingredient_id": "coffee", - "subrecipe_id": null, - "quantity": 235, - "unit_id": "gram", - "percentage": 55.95, - "basis_member": 0, - "optional": 0, - "notes": "cooled", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_orange_juice", - "position": 6, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 29.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_bourbon", - "position": 7, - "ingredient_id": "bourbon", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": 13.1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 275, - "unit_id": "gram", - "percentage": 65.48, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_brown_sugar", - "position": 10, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": 26.19, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_flour_all_purpose", - "position": 11, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_baking_powder", - "position": 12, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 4.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_baking_soda", - "position": 13, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 0.95, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_salt", - "position": 14, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.71, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_cinnamon", - "position": 15, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_16_ginger", - "position": 16, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.6, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_17_cloves", - "position": 17, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.3, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_18_allspice", - "position": 18, - "ingredient_id": "allspice", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.3, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a large bowl, whisk the whole eggs, yolk, oil, honey, coffee, juice, whiskey, and extract until lightly combined. Add the sugars and whisk until dissolved into the liquid mixture. This step may be done in an electric mixer if desired.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the sifted dry ingredients in a mixer fitted with a whisk attachment. On low speed, add the liquid ingredients and whisk until the dry ingredients are moistened, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gradually raise the speed to medium and whisk for about 1 minute. The batter will have the consistency of thick soup.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177ºC) for the first ½ of the baking process, then lower oven to 325°F (163ºC) to finish.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Allow the cake to cool in the pan until warm before unmolding.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Honey Glaze:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Melt the butter in a saucepan over medium-low heat, add the honey and whisk to emulsify.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Brush the exterior of the cake with the honey glaze while the cake is still warm.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "mozzarella_cheese_melt_stuffed", "schema_version": 2, @@ -93044,1203 +23405,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "naan_indian_flatbread", - "schema_version": 2, - "save_version": 6, - "title": "Naan (Indian Flatbread)", - "summary": "Yield: seventeen 100 g (3.5 oz) naans", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1715, - "yield_unit_id": "gram", - "yield_servings": 7, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: seventeen 100 g (3.5 oz) naans\",\"Naan is traditionally baked in a tandoor oven which produce an enormous amount of heat. To replicate the heat of a tandoor oven in your kitchen, use a grill, grill pan, or pizza stone to bake the naan. Melted or clarified butter may be substituted for ghee.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 155, - "unit_id": "gram", - "percentage": 15.5, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_yeast_fresh", - "position": 4, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_greek_yogurt", - "position": 6, - "ingredient_id": "greek_yogurt", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a hook attachment, combine the flour and salt and mix to blend.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the water, yeast, eggs, and yogurt. Knead until smooth and elastic (about 5-8 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the dough in an oiled bowl and bulk proof until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Divide into 100 g (3.5 oz) pieces and pre-shape into balls. Place on lightly oiled sheet pans, cover and proof a second time until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Roll each dough ball on a lightly floured work surface into a disc about 6-inches in diameter, or between ⅛ to ¼-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Grill:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Brush and oil the grate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Lightly brush the top of the dough with ghee and place ghee-side down on the grate. Grill until the bottoms are browned and tops start to puff and blister (1-2 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Lightly brush the tops with a little ghee. Invert the naan and grill the other side until lightly browned (1-2 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Lightly brush each naan with additional ghee and sprinkle with coarse sea salt as desired.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "new_york_cheesecake", - "schema_version": 2, - "save_version": 6, - "title": "New York Cheesecake", - "summary": "Yield: one 10-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2262, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 10-inch cake pan\",\"It is important not to incorporate too much air into the batter. A New York cheesecake is supposed to have a dense, creamy texture. If you incorporate too much air into the batter the cheesecake takes on a light and fluffy texture which is not traditional for the style.\",\"Cheesecake can be covered or uncovered during baking, depending on if color is desired on the top.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cream_cheese", - "position": 1, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 1360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 315, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 235, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the cream cheese and sugar on medium speed until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "On medium speed, add the whole eggs and yolks one at a time, scraping down the bowl again as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the cream and extract and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 300°F (149°C) in a water bath.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "north_african_honeycomb_pancakes", - "schema_version": 2, - "save_version": 6, - "title": "North African Honeycomb Pancakes", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1950, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_semolina", - "position": 1, - "ingredient_id": "semolina", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": 187.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": 375, - "basis_member": 0, - "optional": 0, - "notes": "115ºF/46ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_milk_whole", - "position": 6, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_yeast_fresh", - "position": 8, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the sifted dry ingredients into a bowl of a mixer fitted with a whisk attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the wet ingredients and add ½ to the dry ingredients. Mix until smooth, scraping down the bowl as necessary. Gradually add the rest of the wet ingredients and continue to mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cover the batter and allow to ferment at room temperature for 1-2 hours, or until doubled in size and very bubbly, before use. Alternatively, refrigerate overnight for a long and slow fermentation.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When ready to cook, stir to deflate. Batter should be a little thicker than heavy cream; thin with warm water if necessary. Heat a heavy, nonstick (or very well-seasoned cast-iron) pan over medium heat. Pour desired amount of batter and cook at a very gentle sizzle for several minutes, until the top is covered with holes and completely set; the bottom should be golden and lacy. Repeat as needed with the remaining batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "These pancakes are also known as beghrir (or baghrir). When cooked correctly, they are riddled with tiny holes which soak up whatever sauce they are served with. The most common way to eat beghrir in Morocco and Algeria is by dipping them in honey-butter, but they can also be cut into wedges and served with jam.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "nougat_de_montelimar", - "schema_version": 2, - "save_version": 6, - "title": "Nougat de Montélimar", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1650, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_whole_almonds", - "position": 1, - "ingredient_id": "whole_almonds", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_pistachio", - "position": 2, - "ingredient_id": "pistachio", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_honey", - "position": 3, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 112, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_glucose_syrup", - "position": 6, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 187, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_candied_orange_peel", - "position": 8, - "ingredient_id": "candied_orange_peel", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Toast the nuts and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, slowly bring the honey to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Simultaneously, bring the sugar, water, and glucose to a boil in another saucepan.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "After boiling the sugar for one minute, start whipping the egg whites with a whisk attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "When the sugar mixture reaches 290°F (145°C), slowly pour it over the whipping egg whites, followed by the honey. When the mixture begins to stiffen, switch to the paddle attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Add the warm nuts, candied orange peel, and salt; mix to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Roll out the nougat on a silicone mat, lightly dusted with cornstarch on both sides, to ½\" thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Allow to cool, then cut into desired sized pieces with an oiled knife.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Store at room temperature in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "nougat_semifreddo", - "schema_version": 2, - "save_version": 6, - "title": "Nougat Semifreddo", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "nougatine", - "position": 1, - "name": "Nougatine", - "notes_json": "[]" - }, - { - "id": "semifreddo", - "position": 2, - "name": "Semifreddo", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "nougatine", - "id": "line_01_sliced_almonds", - "position": 1, - "ingredient_id": "sliced_almonds", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "nougatine", - "id": "line_02_hazelnut", - "position": 2, - "ingredient_id": "hazelnut", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "nougatine", - "id": "line_03_pine_nuts", - "position": 3, - "ingredient_id": "pine_nuts", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "nougatine", - "id": "line_04_pistachio", - "position": 4, - "ingredient_id": "pistachio", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "nougatine", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "nougatine", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 58, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "nougatine", - "id": "line_07_glucose_syrup", - "position": 7, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_08_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_09_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_10_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_11_honey", - "position": 4, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_12_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_13_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_14_cream_of_tartar", - "position": 7, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "semifreddo", - "id": "line_15_candied_orange_peel", - "position": 8, - "ingredient_id": "candied_orange_peel", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Nougatine:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Toast the nuts; keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make an amber caramel with the sugar, water, and glucose.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the toasted nuts to the caramel and mix to coat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Spread out onto a silicone baking mat and allow to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chop the cooled nougatine into desired sized pieces.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Semifreddo:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "In a saucepan, bring the first weight of sugar and water to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Meanwhile, in a mixer fitted with a whisk attachment, begin making French meringue with the egg whites, second weight of sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "When the sugar syrup reaches 239°F (115°C), add the honey and continue to cook to 246°F (119°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Pour the cooked sugar/honey syrup into the meringue and whip until cool.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Fold the chopped nougatine and diced candied orange peel into the meringue followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_14", - "position": 14, - "instruction": "Mold as desired and freeze immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "oat_chocolate_cookie", "schema_version": 2, @@ -94465,185 +23629,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "oat_crumb_topping", - "schema_version": 2, - "save_version": 6, - "title": "Oat Crumb Topping", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 2245, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"The crumb topping can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 675, - "unit_id": "gram", - "percentage": 112.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_rolled_oats", - "position": 4, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 345, - "unit_id": "gram", - "percentage": 57.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_powder", - "position": 6, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cardamom", - "position": 8, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.33, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the butter and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the rest of the ingredients by hand, making sure there are no lumps.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the melted butter and mix to combine by hand.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "oatmeal_raisin_cookie", "schema_version": 2, @@ -94839,738 +23824,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "oatmeal_raisin_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Oatmeal-Raisin Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1977, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 371, - "unit_id": "gram", - "percentage": 115.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 421, - "unit_id": "gram", - "percentage": 130.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 82, - "unit_id": "gram", - "percentage": 25.47, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 7.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 46.58, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 2.17, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 322, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_soda", - "position": 8, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 3.11, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.55, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cinnamon", - "position": 10, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.55, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_rolled_oats", - "position": 11, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 394, - "unit_id": "gram", - "percentage": 122.36, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_golden_raisins", - "position": 12, - "ingredient_id": "golden_raisins", - "subrecipe_id": null, - "quantity": 185, - "unit_id": "gram", - "percentage": 57.45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the sifted dry ingredients with the oats. Add to the egg mixture and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold in the raisins until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 275°F (135°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "oatmeal_walnut_bread", - "schema_version": 2, - "save_version": 6, - "title": "Oatmeal Walnut Bread", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1700, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_whole_wheat", - "position": 1, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 24.81, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_rolled_oats", - "position": 2, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 20.16, - "basis_member": 0, - "optional": 0, - "notes": "lightly toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 62.02, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_bread", - "position": 4, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 485, - "unit_id": "gram", - "percentage": 75.19, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_milk_whole", - "position": 5, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": 20.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_honey", - "position": 6, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 7.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_canola_oil", - "position": 7, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 7.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_yeast_fresh", - "position": 9, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_walnut", - "position": 10, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": 40.31, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the whole wheat flour, toasted oats, and water in a bowl and soak for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, combine all of the ingredients - except the walnuts and mix for 2 minutes on low speed. Increase to medium speed and mix for 3-4 minutes to develop gluten.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the walnuts and mix on low speed until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Place the dough in an oiled bowl and bulk proof for 60 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Turn, fold and flip the dough over in the bowl, cover and refrigerate overnight, or up to 18 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Divide in ½ and pre-shape into 2 rounds. Cover and bench rest for 10 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Shape into bâtards, roll in oats, and place into buttered loaf pans. Proof for about 60 minutes, or until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 375°F (191°C) for 35-40 minutes, or until baked through.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "olive_oil_maple_granola", - "schema_version": 2, - "save_version": 6, - "title": "Olive Oil & Maple Granola", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1160, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_rolled_oats", - "position": 1, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_raw_sunflower_seeds", - "position": 2, - "ingredient_id": "raw_sunflower_seeds", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "hulled", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_raw_sliced_almonds", - "position": 3, - "ingredient_id": "raw_sliced_almonds", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_raw_pecans", - "position": 4, - "ingredient_id": "raw_pecans", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_unsweetened_coconut", - "position": 5, - "ingredient_id": "unsweetened_coconut", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "shredded", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pure_maple_syrup", - "position": 6, - "ingredient_id": "pure_maple_syrup", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_extra_virgin_olive_oil", - "position": 7, - "ingredient_id": "extra_virgin_olive_oil", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_brown_sugar", - "position": 8, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine all of the ingredients in a large bowl and mix well.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Spread the granola onto parchment-lined sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 275°F (135°C) until toasted, stirring occasionally.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Remove from the oven and season with additional salt to taste if desired.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Store in a airtight container for up to 1 month.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "orange_chicken_sauce", "schema_version": 2, @@ -95921,260 +24174,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "orange_chiffon_cake", - "schema_version": 2, - "save_version": 6, - "title": "Orange Chiffon Cake", - "summary": "Yield: one full sheet pan or one 10-inch tube pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1285, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan or one 10-inch tube pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 55.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_sugar", - "position": 3, - "ingredient_id": "vanilla_sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 55.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 4.41, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": 61.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_canola_oil", - "position": 7, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": 48.46, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_oranges", - "position": 8, - "ingredient_id": "oranges", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": 1.32, - "basis_member": 0, - "optional": 0, - "notes": "juice & zest", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whites", - "position": 9, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 132.16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_sugar", - "position": 10, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 22.03, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_cream_of_tartar", - "position": 11, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks, oil, juice, and zest together.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the wet ingredients into the sifted dry ingredients and thoroughly mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the meringue into the batter just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "orange_juice", "schema_version": 2, @@ -96250,994 +24249,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "orange_olive_oil_cake", - "schema_version": 2, - "save_version": 6, - "title": "Orange Olive Oil Cake", - "summary": "Yield: two 9-inch cake pans or one full sheet pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1850, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch cake pans or one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_baking_powder", - "position": 2, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_soda", - "position": 3, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.46, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.46, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 55.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 84.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_extra_virgin_olive_oil", - "position": 7, - "ingredient_id": "extra_virgin_olive_oil", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_buttermilk", - "position": 8, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_orange_zest", - "position": 9, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_orange_juice", - "position": 10, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 0.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the eggs and sugar over a water bath until the mixture reaches 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a whisk attachment, whip the warm egg mixture until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the liquid ingredients and zest to the egg foam mixture and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Gently fold the sifted dry ingredients into the egg foam mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "orange_saffron_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Orange-Saffron Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1187, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_orange_juice", - "position": 1, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 1500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_saffron", - "position": 2, - "ingredient_id": "saffron", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_juice_saffron_reduction", - "position": 3, - "ingredient_id": "orange_juice_saffron_reduction", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_xanthan_gum", - "position": 5, - "ingredient_id": "xanthan_gum", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In saucepan, reduce the juice and saffron by ⅓ .", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the reduced juice and sugar to a boil to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cool the sauce down immediately over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Place the chilled juice mixture in a blender. With the blender on low speed, sprinkle in the xanthan gum then blend on high speed for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Remove the bubbles in the sauce using a vacuum packaging machine.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "orange_tea_cake", - "schema_version": 2, - "save_version": 6, - "title": "Orange Tea Cake", - "summary": "Yield: one 9-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1170, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch cake pan\",\"This cake will cave in the center. To remedy this, press the sides of the cake down so they are level with the center while the cake is still hot from the oven.\",\"Allow the cake to cool in the pan for 10-15 minutes before inverting onto a cake board or platter.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_whole_oranges", - "position": 1, - "ingredient_id": "whole_oranges", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_vanilla_bean", - "position": 2, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_almond_flour", - "position": 6, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Boil the whole oranges in water until very soft (about 2-3 hours).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Puree the oranges, vanilla bean seeds, and zest until smooth, then weigh out 375 g for the recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a whisk attachment, whip the eggs and sugar until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold in the flour and baking powder, followed by the puree until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325ºF (163ºC) in a buttered and floured cake pan until a skewer inserted comes out clean and the cake pulls away from the sides of the pan.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "orange_truffle_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Orange Truffle Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_orange_juice", - "position": 4, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_valrhona_manjari", - "position": 5, - "ingredient_id": "valrhona_manjari", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_grand_marnier", - "position": 7, - "ingredient_id": "grand_marnier", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream and salt to a boil. Add the zest and set aside to infuse for 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Reduce the juice by ½ and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the infused cream through a fine-mesh strainer, then bring back to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour the hot cream over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir in the softened butter, followed by the reduced juice and Grand Marnier.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover the surface of the ganache with plastic wrap and allow to set up at room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Pipe the ganache into rounds that are as spherical as possible, then refrigerate until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Roll the ganache into spheres by hand and chill again. At this point, the rolled spheres may be refrigerated for several days before being finished.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Allow the spheres to temper from the refrigerator before coating twice in tempered chocolate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "After the second coating, roll the truffles in sifted cocoa powder before the chocolate sets. Once set, sift the excess cocoa powder off the finished truffles.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "orange_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Orange Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1644, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 264.32, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_almond_flour", - "position": 3, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_orange_juice", - "position": 5, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 363, - "unit_id": "gram", - "percentage": 159.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the juice into the sifted dry ingredients until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gradually add the melted butter in 3 additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "p_f_changs_dark_sauce", "schema_version": 2, @@ -98303,643 +25314,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pain_de_genes", - "schema_version": 2, - "save_version": 6, - "title": "Pain de Gênes", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1165, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\",\"This cake can be pleasant with the addition of diced candied orange peel, citrus zest, chocolate chips, and chopped nuts.\",\"Other liquors like dark rum, Pernod, amaretto, pear william, calvados, etc. can be substituted for kirschwasser.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_paste", - "position": 1, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 470.59, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 117.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 294.12, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 352.94, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_kirschwasser", - "position": 5, - "ingredient_id": "kirschwasser", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 35.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.94, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the paste and sugar until light and crumbly.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the butter and continue to mix until very light and creamy.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs in 3 additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the kirschwasser.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the sifted flour and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191ºC) for the first ½ of the baking process, then lower to 350°F (177ºC) to finish.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor", - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pain_de_mie", - "schema_version": 2, - "save_version": 6, - "title": "Pain de Mie", - "summary": "Yield: one 15 x 4-inch pullman loaf pan", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1030, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 15 x 4-inch pullman loaf pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 3.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_powder", - "position": 4, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "1½ T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_yeast_fresh", - "position": 6, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_milk_whole", - "position": 8, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Butter the pullman pan and lid.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix all of the ingredients on low speed for 1-2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Switch to a hook attachment and mix on medium-low speed for 3-5 minutes, or until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Place the dough in an oiled bowl and bulk proof for 30-60 minutes, or until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "De-gas the dough, then shape into a loaf the length of the pullman pan.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Place the loaf in the buttered pan seam side down and slide the lid closed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Give the dough its final proof. The dough should rise within a ½-inch to the lid before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350ºF (177ºC) for 25-30 minutes, or until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Remove the lid and continue to bake until the internal temperature is 190ºF (88ºC), about 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Unmold the loaf immediately after baking and cool on wire racks.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pain_viennois", - "schema_version": 2, - "save_version": 6, - "title": "Pain Viennois", - "summary": "Yield: eight 100 g (3.5 oz) loaves", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 805, - "yield_unit_id": "gram", - "yield_servings": 8, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: eight 100 g (3.5 oz) loaves\",\"Pain Viennois is classically made in the shape of a baguette but can also be made into rolls. The crust is softer and the bread is overall richer and sweeter than traditional baguettes. 100 g (3.5 oz) loaves make an ideal size for sandwiches or hot dog buns.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 47.62, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 11.9, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_yeast_fresh", - "position": 4, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 5.95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.38, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 20.24, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix all of the ingredients-except the butter-on low speed for 2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Switch to a hook attachment and mix on medium speed for 5-7 minutes, or until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the butter in 3 additions and mix until silky and all of the butter has been absorbed into the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Place the dough in an oiled bowl and bulk proof for 60 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Divide into 100 g (3.5 oz) pieces and pre-shape into bâtards. Cover and bench rest for 10 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Final shape the bâtards into small baguettes and place on parchment-lined sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Egg wash, score, and proof. Egg wash a second time right before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 375°F (191°C) until the internal temperature is 190°F (88°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pancakes", "schema_version": 2, @@ -99135,392 +25509,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "panettone", - "schema_version": 2, - "save_version": 6, - "title": "Panettone", - "summary": "Yield: two 6-inch panettones. Panettone is a type of sweet enriched bread originally from Milan; traditionally enjoyed around the holiday season in Italy.", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1815, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 6-inch panettones\",\"The raisins may be macerated in brandy or plumped with warm water and drained if desired.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 18.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_vanilla_sugar", - "position": 3, - "ingredient_id": "vanilla_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 4.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.43, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_nutmeg", - "position": 5, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.18, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_09_lemon_zest", - "position": 6, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 0.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_10_orange_zest", - "position": 7, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_11_egg_whole", - "position": 8, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 42.86, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_12_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 11.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_13_orange_flower_water", - "position": 10, - "ingredient_id": "orange_flower_water", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.43, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_14_butter", - "position": 11, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 28.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_15_golden_rasins", - "position": 12, - "ingredient_id": "golden_rasins", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 21.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_16_candied_orange_peel", - "position": 13, - "ingredient_id": "candied_orange_peel", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 7.14, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_yeast_fresh", - "position": 1, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": 7.86, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 14.29, - "basis_member": 0, - "optional": 0, - "notes": "100ºF/38ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_flour_bread", - "position": 3, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 28.57, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sponge:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a sponge with the yeast, milk and flour. Cover and let proof in a warm place for about 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a paddle attachment, mix the flour, sugars, salt, nutmeg, and zests to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the whole eggs one at a time, followed by the yolks and orange flower water, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Add the sponge and mix on low speed for 1-2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Mix on medium speed for 3-4 minutes until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "When the gluten is fully developed, add the butter and continue to beat on medium speed until the dough becomes a smooth, satiny ball (about 2-3 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Place the dough in an oiled bowl and bulk proof for 2 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Turn/fold and divide/scale the dough into 2 portions. Knead the raisins and orange peel into each portion.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Shape the portions into tight balls and place in the middle of 6-inch panettone molds .", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Let proof and bake at 350°F (177°C) until the internal temperature reaches 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Cool on a wire rack.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "papa_johns_garlic_dipping_sauce", "schema_version": 2, @@ -99841,1788 +25829,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "papaya_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Papaya Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2105, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_papaya_puree", - "position": 4, - "ingredient_id": "papaya_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_grenadine", - "position": 6, - "ingredient_id": "grenadine", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and grenadine. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "passion_fruit_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Passion Fruit Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 129, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_passion_fruit_puree", - "position": 2, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 32, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_milk", - "position": 7, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 437, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 32, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cocoa_butter", - "position": 9, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a crème anglaise with the cream, puree, sugars, zest, and egg yolks.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Place the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter, followed by the melted cocoa butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "passion_fruit_curd", - "schema_version": 2, - "save_version": 6, - "title": "Passion Fruit Curd", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1940, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_passion_fruit_puree", - "position": 3, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_zest", - "position": 5, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the puree, ½ of the sugar, zest, and vanilla bean to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk together the eggs and the other ½ of the sugar until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the puree mixture comes to a boil, temper ⅓ of the hot mixture into the eggs. Use a rubber spatula to scrape all of the tempered egg mixture into the saucepan and continue to whisk on medium-low heat until the mixture thickens and reaches the scalding point.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer. Allow the hot curd to cool for about 5-10 minutes, stirring occasionally.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Using an immersion blender, blend in the bloomed and drained gelatin, followed by the butter.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "passion_fruit_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Passion Fruit Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1545, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_passion_fruit_puree", - "position": 4, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the pâte à bombe. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "passion_fruit_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Passion Fruit Panna Cotta", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2378, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_gelatin_sheet", - "position": 5, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_passion_fruit_puree", - "position": 7, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_apricot_puree", - "position": 8, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, sugar, salt, and vanilla bean to a boil; set aside to infuse while while the gelatin is blooming.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the bloomed and drained gelatin to the mixture and gently whisk to minimize air bubbles.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the purees and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "passion_fruit_souffle", - "schema_version": 2, - "save_version": 6, - "title": "Passion Fruit Soufflé", - "summary": "Yield: fifteen 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1455, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 5.5 oz soufflé ramekins\",\"This is a very stable soufflé, hence a great choice for parties or banquets.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_apple_pectin", - "position": 2, - "ingredient_id": "apple_pectin", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_passion_fruit_puree", - "position": 3, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 425, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_orange_juice", - "position": 4, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_zest", - "position": 5, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 510, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_white_powder", - "position": 7, - "ingredient_id": "egg_white_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix the sugar and pectin together well.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the puree, juice, zest, sugar, and pectin over a water bath; whisk until thickened and very hot, about 185ºF (85ºC). Set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Prepare an Italian meringue with the egg whites, egg white powder, and sugar; whisk until warm, 110ºF (43ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice a small amount of meringue and whisk it into the warm passion fruit mixture to lighten. Fold in the rest of the meringue until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pipe the soufflé mixture into buttered and sugared ramekins with either a round or star tip about 25% above the top of the molds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 375°F (191°C) until risen, browned, and a little soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "passion_fruit_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Passion Fruit Tart Filling", - "summary": null, - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 2060, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_passion_fruit_puree", - "position": 1, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lime_zest", - "position": 4, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk all of the ingredients together until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Warm the filling over a water bath until about 120°F (49ºC). Using an immersion blender, blend everything together then strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Remove excess air bubbles from the top of the custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 250°F (121ºC) in blind baked tart shells just until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pastry_cream", - "schema_version": 2, - "save_version": 6, - "title": "Pastry Cream", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1600, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Pastry cream has a shelf life of up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 960, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_vanilla_bean", - "position": 2, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cornstarch", - "position": 6, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the milk, vanilla bean, ½ of the sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Meanwhile, combine the other ½ of the sugar with the cornstarch. Whisk the egg yolks into the sugar/cornstarch mixture until light and smooth. Remove the vanilla bean.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the milk comes to a boil, temper ⅓ of the hot milk into the egg yolk mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Combine the egg yolk/milk mixture with the rest of the hot milk in the saucepan and boil for 2 minutes, whisking continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Off the heat, whisk the butter into the pastry cream.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cool down immediately.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pate_a_choux", - "schema_version": 2, - "save_version": 6, - "title": "Pâte a Choux", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 71.43, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.43, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.43, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_bread", - "position": 6, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": 0.29, - "basis_member": 0, - "optional": 0, - "notes": "400-500 g", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, milk, butter, salt, and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Remove from the heat and stir in the sifted flour all at once.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the pan back over medium heat and cook the paste to dry it out, stirring continuously for 2-3 minutes. A thin film will form on the bottom and the paste will pull away from the pan.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Transfer the dough to a mixing bowl fitted with a paddle attachment and beat the mixture to release the steam. Allow the mixture to cool enough so as to not cook the eggs when added.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the eggs incrementally, scraping down the bowl as necessary until the proper consistency is reached.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pate_brise", "schema_version": 2, @@ -101788,1367 +25994,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pate_brisee", - "schema_version": 2, - "save_version": 8, - "title": "Pâte Brisée", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1035, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"To inhibit gluten development, keep all ingredients and mixing bowl as cold as possible.\",\"The exact amount of hydration needed can vary depending upon the humidity in the air and the type of flour used.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_cake", - "position": 3, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 70, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk together the eggs and milk and keep cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix together the dry ingredients and butter until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the liquid and mix until the dough is shaggy, but holds together when pressed between two fingers.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Turn the dough out on to a lightly floured work surface. Gently shape into desired sized rounds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pate_decor", - "schema_version": 2, - "save_version": 6, - "title": "Pâte Décor", - "summary": null, - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 810, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This base recipe can be colored as desired using gel paste food coloring.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whites", - "position": 3, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": 105, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_bread", - "position": 4, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Alternately add the flour and the egg whites until homogenous, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pate_decor_au_chocolat", - "schema_version": 2, - "save_version": 6, - "title": "Pâte Décor au Chocolat", - "summary": null, - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 743, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whites", - "position": 3, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 133.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cocoa_powder", - "position": 5, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 68, - "unit_id": "gram", - "percentage": 50.37, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.93, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Alternately add the sifted dry ingredients and the egg whites until homogenous, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pate_sable", - "schema_version": 2, - "save_version": 8, - "title": "Pâte Sablé", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1075, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This dough is good for tarts as well as cookies.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 58.82, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 35.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.98, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 15.69, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 510, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time; scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted flour and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pate_sucree", - "schema_version": 2, - "save_version": 6, - "title": "Pâte Sucrée", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1025, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Baking powder helps tenderize and add lightness to the crust.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.25, - "basis_member": 0, - "optional": 0, - "notes": "optional (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and vanilla bean seeds.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peach_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Peach Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2080, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_peach_puree", - "position": 4, - "ingredient_id": "peach_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_peach_schnapps", - "position": 6, - "ingredient_id": "peach_schnapps", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and schnapps. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peach_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Peach Pie Filling", - "summary": "Yield: one 9-inch pie", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1260, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch pie\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_peeled_peaches", - "position": 1, - "ingredient_id": "peeled_peaches", - "subrecipe_id": null, - "quantity": 1100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "3/8-inch slices", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_juice", - "position": 4, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_zest", - "position": 5, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_instant_tapioca", - "position": 9, - "ingredient_id": "instant_tapioca", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix all of the ingredients in a bowl. Allow the peaches to macerate at room temperature for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fill a 9-inch pie crust with the peach pie filling.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cover with the top crust and seal the edges. Cut several slits in the top crust.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Lightly cover the pie with plastic wrap and refrigerate for 30-60 minutes before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375ºF (191ºC) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peanut_brittle", - "schema_version": 2, - "save_version": 6, - "title": "Peanut Brittle", - "summary": "Yield: one 16 x 24-inch sheet", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1346, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 16 x 24-inch sheet\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 395, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salted_peanuts", - "position": 4, - "ingredient_id": "salted_peanuts", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "roasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the sugar and water to a boil, stirring to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the glucose and continue cooking to 275°F (135°C), without stirring.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the peanuts and cook to 308°F (153°C) over moderate heat, stirring continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Off the heat, stir in the butter and extract.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the baking soda, stirring well to incorporate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour the mixture onto a silicone baking mat and spread with an oiled spatula.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "peanut_butter_cookie", "schema_version": 2, @@ -103374,1739 +26219,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "peanut_butter_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Peanut Butter Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1480, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": 70.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": 70.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": 70.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_peanut_butter", - "position": 4, - "ingredient_id": "peanut_butter", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 127.8, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 31.95, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.8, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 313, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_soda", - "position": 8, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.6, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.8, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugars, and peanut butter.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350°F (177ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peanut_butter_feuilletine", - "schema_version": 2, - "save_version": 6, - "title": "Peanut Butter Feuilletine", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cocoa_butter", - "position": 1, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_milk", - "position": 2, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_peanut_butter", - "position": 3, - "ingredient_id": "peanut_butter", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "creamy", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_confectioners_sugar", - "position": 4, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_feuilletine", - "position": 6, - "ingredient_id": "feuilletine", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the cocoa butter over a water bath, add the chocolate and melt together, stirring until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the chocolate mixture with the peanut butter, sugar, and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the feuilletine until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peanut_butter_frosting", - "schema_version": 2, - "save_version": 6, - "title": "Peanut Butter Frosting", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1465, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cream_cheese", - "position": 1, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_peanut_butter", - "position": 3, - "ingredient_id": "peanut_butter", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "creamy", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_confectioners_sugar", - "position": 4, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sifted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_light_corn_syrup", - "position": 6, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the cream cheese and butter.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the peanut butter to blend, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the powdered sugar, extract, and corn syrup and cream until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Refrigerate the frosting and let firm until desired consistency is reached before icing cakes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peanut_butter_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Peanut Butter Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2294, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_peanut_butter", - "position": 4, - "ingredient_id": "peanut_butter", - "subrecipe_id": null, - "quantity": 565, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cream_cheese", - "position": 5, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 525, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_confectioners_sugar", - "position": 6, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a mixer fitted with a paddle attachment, cream the peanut butter, cream cheese, sugar, and extract until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the bloomed and drained gelatin and mix into the peanut butter mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold in the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peanut_butter_shortbread_bar_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Peanut Butter Shortbread Bar Cookies", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 2028, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\",\"Tahini paste can be substituted for the peanut butter and then sprinkled with sesame seeds instead of chopped peanuts.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 522, - "unit_id": "gram", - "percentage": 141.85, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 460, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_peanut_butter", - "position": 3, - "ingredient_id": "peanut_butter", - "subrecipe_id": null, - "quantity": 155, - "unit_id": "gram", - "percentage": 42.12, - "basis_member": 0, - "optional": 0, - "notes": "creamy", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 10.87, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.72, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 368, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_rolled_oats", - "position": 7, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 205, - "unit_id": "gram", - "percentage": 55.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.68, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salted_peanuts", - "position": 9, - "ingredient_id": "salted_peanuts", - "subrecipe_id": null, - "quantity": 265, - "unit_id": "gram", - "percentage": 72.01, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and peanut butter.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread the dough evenly onto a parchment-lined half sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sprinkle the top with the chopped peanuts and some additional granulated sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until light golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "peanut_caramel_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Peanut-Caramel Tart Filling", - "summary": "Yield: two 9-inch tarts", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch tarts\",\"The peanuts in this recipe may be substituted with other varieties of nuts.\",\"Salted nuts may be used if desired, simply eliminate the salt in the recipe.\",\"We like to pair this tart with Milk Chocolate Chantilly on page 204.\",\"The tart is best served room temperature.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_milk", - "position": 1, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_unsalted_peanuts", - "position": 2, - "ingredient_id": "unsalted_peanuts", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "roasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_honey", - "position": 3, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_glucose_syrup", - "position": 7, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_heavy_cream", - "position": 8, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the chocolate, peanuts, honey, and salt in a bowl large enough to accommodate the entire recipe and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, boil the sugar and water. Add the glucose and cook to a deep amber caramel.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Deglaze with the cream and emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour the caramel over the chocolate mixture and emulsify until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour the warm filling into blind baked tart shells and allow to cool and set at room temperature.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pear_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Pear Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2244, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 24, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 530, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pear_puree", - "position": 4, - "ingredient_id": "pear_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_pear_liqueur", - "position": 7, - "ingredient_id": "pear_liqueur", - "subrecipe_id": null, - "quantity": 95, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a crème anglaise with the puree, egg yolks, and sugar. Add the bloomed and drained gelatin and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir in the liqueur.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold in the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pecan_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Pecan Pie Filling", - "summary": "Yield: one 9-inch pie", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 890, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch pie\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 500, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 666.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 16.67, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_dark_corn_syrup", - "position": 4, - "ingredient_id": "dark_corn_syrup", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 833.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_bourbon", - "position": 6, - "ingredient_id": "bourbon", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_pecan", - "position": 9, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 583.33, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Lightly whisk the eggs, sugar, and salt together.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the corn syrup, extract, and bourbon and lightly whisk to blend.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the flour, followed by the melted butter.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Put the pecans in the pie shell and pour the corn syrup mixture evenly over them.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149ºC) until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pecan_puffs", - "schema_version": 2, - "save_version": 6, - "title": "Pecan Puffs", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 114.65, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.63, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_sugar", - "position": 3, - "ingredient_id": "vanilla_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 12.63, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pecan", - "position": 4, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 560, - "unit_id": "gram", - "percentage": 141.41, - "basis_member": 0, - "optional": 0, - "notes": "lightly toasted & finely ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 198, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 198, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.76, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the ground pecans and mix until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the dry ingredients and mix just until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Roll the dough into desired sized balls; chill before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149°C) until lightly browned.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Dust with powdered sugar once out of the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pesto", "schema_version": 2, @@ -105280,250 +26392,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "petits_fours_glace_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Petits Fours Glacé Sheet Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 520, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_paste", - "position": 1, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": 115, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_vanilla_sugar", - "position": 2, - "ingredient_id": "vanilla_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 120, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lime_zest", - "position": 4, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 90, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": 55, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cream_of_tartar", - "position": 7, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.5, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_cake", - "position": 8, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_flour_all_purpose", - "position": 9, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 50, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 1.25, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the almond paste and vanilla sugar until crumbly.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the zest and then cream until aerated.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the meringue into the almond paste mixture until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the sifted dry ingredients into the meringue just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) until the cake is browned and springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "philly_steak", "schema_version": 2, @@ -106144,1187 +27012,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pink_grapefruit_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Pink Grapefruit Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1100, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pink_grapefruit_juice", - "position": 4, - "ingredient_id": "pink_grapefruit_juice", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_campari", - "position": 5, - "ingredient_id": "campari", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the juice and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the juice and stir in the Campari. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the juice mixture into the pâte à bombe. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pistachio_almond_cream", - "schema_version": 2, - "save_version": 6, - "title": "Pistachio-Almond Cream", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1850, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_almond_flour", - "position": 3, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pistachio_paste", - "position": 4, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 136, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the butter, sugar, flour, pistachio paste, and salt until light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs slowly, thoroughly incorporating each egg before adding the next, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pistachio_bavarian_cream", - "schema_version": 2, - "save_version": 6, - "title": "Pistachio Bavarian Cream", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1474, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pistachio_paste", - "position": 6, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks; set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the milk, first weight of sugar, and paste to a boil. Meanwhile, whisk the egg yolks, second weight of sugar, and salt until light and thick. Temper ⅓ of the milk mixture into the the yolk mixture. Return everything back to the saucepan and cook on medium-low heat until the mixture coats the back of a wooden spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin, and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled pistachio crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pistachio_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Pistachio Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 532, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 254, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_pistachio_paste", - "position": 3, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 67, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 119, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, paste, sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the hot mixture over the melted chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pistachio_glaze", - "schema_version": 2, - "save_version": 6, - "title": "Pistachio Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 2040, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 470, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_glucose_syrup", - "position": 4, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 190, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_pistachio_paste", - "position": 5, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_white", - "position": 7, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 565, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_white_chocolate_p_te_glacer", - "position": 8, - "ingredient_id": "white_chocolate_p_te_glacer", - "subrecipe_id": null, - "quantity": 565, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the milk, glucose, pistachio paste, and salt to a boil. While heating, whisk to help dissolve the paste into the milk.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Off the heat, add the chocolates, followed by the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Blend the glaze with an immersion blender until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use at about 84°F (29°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pistachio_joconde_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Pistachio Joconde Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 780, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pistachio_flour", - "position": 1, - "ingredient_id": "pistachio_flour", - "subrecipe_id": null, - "quantity": 107, - "unit_id": "gram", - "percentage": 55.44, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 107, - "unit_id": "gram", - "percentage": 55.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.65, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 51.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 31.09, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pistachio_paste", - "position": 6, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 36, - "unit_id": "gram", - "percentage": 18.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 86, - "unit_id": "gram", - "percentage": 44.56, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": 108.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 72, - "unit_id": "gram", - "percentage": 37.31, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cream_of_tartar", - "position": 10, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1.3, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the sifted dry ingredients in a mixing bowl fitted with a paddle attachment.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the whole eggs, yolks, and pistachio paste and mix on high speed to form a smooth, aerated paste, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Fold the sifted cake flour into the paste until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Gently fold the meringue into the pistachio mixture until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 400°F (204°C) until the cake is browned and springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pistachio_shortbread_cookie", "schema_version": 2, @@ -107542,166 +27229,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pistachio_white_chocolate_feuilletine", - "schema_version": 2, - "save_version": 6, - "title": "Pistachio-White Chocolate Feuilletine", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1155, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_pistachio_paste", - "position": 2, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_feuilletine", - "position": 5, - "ingredient_id": "feuilletine", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pistachio", - "position": 6, - "ingredient_id": "pistachio", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted & finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the pistachio paste, butter, and salt together until light and creamy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the melted chocolate, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the feuilletine and pistachios until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pita", "schema_version": 2, @@ -107893,211 +27420,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pizza_dough", - "schema_version": 2, - "save_version": 6, - "title": "Pizza Dough", - "summary": "Yield: four 12-inch pizzas", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1220, - "yield_unit_id": "gram", - "yield_servings": 4, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: four 12-inch pizzas\",\"285 g (10 oz) of dough will yield one 12-inch pizza.\",\"The dough can be refrigerated for 2 days or rolled out 12-inch disks and frozen for 1 month.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "poolish", - "position": 1, - "name": "Poolish", - "notes_json": "[]" - }, - { - "id": "pizza_dough", - "position": 2, - "name": "Pizza Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "pizza_dough", - "id": "line_04_poolish", - "position": 1, - "ingredient_id": "poolish", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "pizza_dough", - "id": "line_05_flour_bread", - "position": 2, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 525, - "unit_id": "gram", - "percentage": 75, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "pizza_dough", - "id": "line_06_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 325, - "unit_id": "gram", - "percentage": 46.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "pizza_dough", - "id": "line_07_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "pizza_dough", - "id": "line_08_yeast_fresh", - "position": 5, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.71, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "poolish", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 25, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "poolish", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "poolish", - "id": "line_03_yeast_fresh", - "position": 3, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Poolish:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Mix the flour, water, and yeast until blended. Cover and allow to ferment at room temperature for 6-12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a paddle attachment, mix the poolish, bread flour, water, salt, and yeast until a dough is formed (1-2 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Allow the dough to ferment in the refrigerator overnight in an airtight, oiled bowl.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pizza_sauce", "schema_version": 2, @@ -108323,215 +27645,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "plum_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Plum Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2070, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_plum_puree", - "position": 4, - "ingredient_id": "plum_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_plum_brandy", - "position": 6, - "ingredient_id": "plum_brandy", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and brandy. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "popeyes_coater_mix", "schema_version": 2, @@ -108923,1908 +28036,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "poppy_seed_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Poppy Seed Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2253, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_poppy_seeds", - "position": 1, - "ingredient_id": "poppy_seeds", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_white_port", - "position": 2, - "ingredient_id": "white_port", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_plum_jam", - "position": 3, - "ingredient_id": "plum_jam", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_gelatin_sheet", - "position": 5, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cognac", - "position": 7, - "ingredient_id": "cognac", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_chocolate_white", - "position": 8, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_heavy_cream", - "position": 9, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_whole", - "position": 10, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_yolk", - "position": 11, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, cook the poppy seeds, port, jam, and vanilla been seeds until the liquid is reduced and the poppy seeds become a paste; set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "In a mixer fitted with a whisk attachment, whisk the whole eggs, yolks, and salt until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Melt the bloomed and drained gelatin with the cognac and whisk into the whipped eggs.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the whipped cream into the warm chocolate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Fold the egg mixture into the chocolate/cream mixture, followed by the cooled paste.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "poppy_seed_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Poppy Seed Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 2321, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_poppy_seeds", - "position": 1, - "ingredient_id": "poppy_seeds", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_almond_flour", - "position": 2, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_confectioners_sugar", - "position": 4, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_honey", - "position": 5, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_orange_zest", - "position": 6, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cloves", - "position": 8, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_yolk", - "position": 10, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_whites", - "position": 11, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 540, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_sugar", - "position": 12, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_cream_of_tartar", - "position": 13, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a food processor, grind the poppy seeds and flour and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, honey, zest, spices, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the egg yolks 3 at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold in the ground poppy seed/flour mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Make a medium-stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the meringue into the batter just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 300ºF (149ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "port_cassis_poaching_liquid", - "schema_version": 2, - "save_version": 6, - "title": "Port-Cassis Poaching Liquid", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 2460, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Strain the poaching liquid through a fine-mesh strainer lined with cheesecloth without pressing on the solids for a delicious, nearly translucent, and deep burgundy colored liquid.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 1170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_cassis_puree", - "position": 2, - "ingredient_id": "cassis_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_port_wine", - "position": 3, - "ingredient_id": "port_wine", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 415, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, puree, wine, sugar, and vanilla bean to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and add prepared fruit of choice. Keep covered with parchment paper until a paring knife inserted into the fruit yields little to no resistance.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "sheet_pan" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "port_wine_sabayon", - "schema_version": 2, - "save_version": 6, - "title": "Port Wine Sabayon", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 980, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_port_wine", - "position": 2, - "ingredient_id": "port_wine", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cinnamon_sticks", - "position": 4, - "ingredient_id": "cinnamon_sticks", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_orange_zest", - "position": 6, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_yolk", - "position": 7, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks and set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the wine, sugar, cinnamon sticks, vanilla bean, and zest to a boil. Set aside to infuse for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the infused wine mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the mixture and egg yolks over a water bath until thickened and a ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "potato_rolls", - "schema_version": 2, - "save_version": 6, - "title": "Potato Rolls", - "summary": "Yield: thirty 50 g (1.8 oz) rolls. This recipe makes the quintessential soft dinner roll — moist, tender, and irresistible. Try them as hamburger and hotdog buns too.", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: thirty 50 g (1.8 oz) rolls\",\"It is recommended to roast the potatoes in the oven, then pass through a ricer or food mill as opposed to boiling them, which increases their water content.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 740, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 106, - "unit_id": "gram", - "percentage": 14.32, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.03, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 30.68, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_yeast_fresh", - "position": 5, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 21, - "unit_id": "gram", - "percentage": 2.84, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_mashed_potatoes", - "position": 6, - "ingredient_id": "mashed_potatoes", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 23.65, - "basis_member": 0, - "optional": 0, - "notes": "unseasoned", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 13.51, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 114, - "unit_id": "gram", - "percentage": 15.41, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix all of the ingredients on low speed for 2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Switch to a hook attachment and mix on medium speed for 6-8 minutes, or until gluten is developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the dough in an oiled bowl and bulk proof for 60 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Turn the dough out onto a floured bench and gently de-gas.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Divide into desired sized pieces and pre-shape into rounds. Cover and bench rest for 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Final shape each piece into tight rounds. Proof for about 30-45 minutes, or until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Egg wash and bake at 375ºF (191ºC) until the internal temperature is 190ºF (88ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pots_de_creme", - "schema_version": 2, - "save_version": 6, - "title": "Pots de Crème", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1395, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - }, - { - "id": "variations", - "position": 2, - "name": "Variations", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "variations", - "id": "line_07_chocolate_dark", - "position": 1, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-66%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "variations", - "id": "line_08_pistachio_paste", - "position": 2, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "variations", - "id": "line_09_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the milk, cream, and sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixing bowl, whisk together the whole egg, yolks, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper the hot cream mixture into the egg mixture until smooth and homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove excess air bubbles from the top of the pots de crème custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "praline_feuilletine_with_cocoa_nibs", - "schema_version": 2, - "save_version": 6, - "title": "Praline Feuilletine with Cocoa Nibs", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1020, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cocoa_butter", - "position": 1, - "ingredient_id": "cocoa_butter", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_chocolate_milk", - "position": 2, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_chocolate_white", - "position": 3, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_praline_paste", - "position": 4, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 310, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_feuilletine", - "position": 6, - "ingredient_id": "feuilletine", - "subrecipe_id": null, - "quantity": 310, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cocoa_nibs", - "position": 7, - "ingredient_id": "cocoa_nibs", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the cocoa butter over a water bath, add the chocolates and melt together, stirring until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the chocolate mixture with the praline paste and salt to taste until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir in the feuilletine and caramelized cocoa nibs until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "praline_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Praline Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1515, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 280, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_praline_paste", - "position": 3, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 400, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": 312, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cream_of_tartar", - "position": 8, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 2.4, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the whole eggs, yolk, and praline paste until light and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sift the flour and salt together and add to the praline mixture. Whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Gently fold the meringue into the batter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350ºF (177ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "praline_truffle_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Praline Truffle Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 303, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_icing_fondant", - "position": 2, - "ingredient_id": "icing_fondant", - "subrecipe_id": null, - "quantity": 121, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_praline_paste", - "position": 5, - "ingredient_id": "praline_paste", - "subrecipe_id": null, - "quantity": 303, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chocolate_dark", - "position": 6, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 243, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "56%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, fondant, sugar, and salt on low speed until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the praline paste and mix until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper the chocolate and incorporate into the butter mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cover the surface of the ganache with plastic wrap and allow to set up at room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pipe the ganache into rounds that are as spherical as possible, then refrigerate until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Roll the ganache into spheres by hand and chill again. At this point, the rolled spheres may be refrigerated for several days before being finished.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Allow the spheres to temper from the refrigerator before coating twice in tempered chocolate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "After the second coating, roll the truffles in sifted cocoa powder before the chocolate sets. Once set, sift the excess cocoa powder off the finished truffles.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pub_pretzel", "schema_version": 2, @@ -111420,1228 +28631,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pumpkin_brioche", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Brioche", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1750, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_05_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": 9.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_egg_whole", - "position": 2, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 175, - "unit_id": "gram", - "percentage": 23.12, - "basis_member": 0, - "optional": 0, - "notes": "3½ each", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 11, - "unit_id": "gram", - "percentage": 1.45, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_09_flour_bread", - "position": 5, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 563, - "unit_id": "gram", - "percentage": 74.37, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_10_pumpkin_puree", - "position": 6, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 283, - "unit_id": "gram", - "percentage": 37.38, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_11_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 29.99, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": 16.51, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_yeast_fresh", - "position": 2, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 3.96, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 6.61, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_04_flour_bread", - "position": 4, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 194, - "unit_id": "gram", - "percentage": 25.63, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a sponge with the milk, yeast, egg, and flour. Cover and let proof in a warm place for about 20 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Once the sponge is ready, mix everything together- except the butter- with a dough hook for about 5 minutes, or until gluten is developed and a \"window\" is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the butter in several additions and mix until silky and all of the butter has been absorbed into the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Slow proof the dough in the refrigerator overnight. Alternatively, bulk proof for 2 hours at room temperature, chill until firm, then use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_cake", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Cake", - "summary": "Yield: one 9-inch cake pan or one half sheet pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1570, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch cake pan or one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pumpkin_puree", - "position": 1, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": 104.97, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 218, - "unit_id": "gram", - "percentage": 60.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 49.72, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 55.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_canola_oil", - "position": 5, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 44.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 362, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.38, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_ginger", - "position": 8, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cloves", - "position": 9, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.69, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_soda", - "position": 10, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.93, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_baking_powder", - "position": 11, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.38, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.38, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the puree, sugars, and eggs until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Slowly add the oil to the pumpkin mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350ºF (177ºC) until the cake springs back to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_cheesecake", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Cheesecake", - "summary": "Yield: one 10-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2270, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 10-inch cake pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cream_cheese", - "position": 1, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 114, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pumpkin_puree", - "position": 6, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 737, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_ginger", - "position": 8, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cloves", - "position": 9, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the cream cheese and sugars on medium speed until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "On medium speed, add the whole eggs and yolks one at a time, scraping down the bowl again as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the puree and spices to the cream cheese mixture and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 300°F (149°F) in a water bath.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_chocolate_chip_pound_cake", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin-Chocolate Chip Pound Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1965, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 189, - "unit_id": "gram", - "percentage": 42, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 313, - "unit_id": "gram", - "percentage": 69.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 22.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_cake", - "position": 5, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 55.56, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 44.44, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 19, - "unit_id": "gram", - "percentage": 4.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cinnamon", - "position": 9, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 0.89, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_ginger", - "position": 10, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "ground (¾ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_allspice", - "position": 11, - "ingredient_id": "allspice", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_nutmeg", - "position": 12, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_pumpkin_puree", - "position": 13, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 232, - "unit_id": "gram", - "percentage": 51.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_water", - "position": 14, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 197, - "unit_id": "gram", - "percentage": 43.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_chocolate_chips", - "position": 15, - "ingredient_id": "chocolate_chips", - "subrecipe_id": null, - "quantity": 197, - "unit_id": "gram", - "percentage": 43.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_16_walnut", - "position": 16, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 98, - "unit_id": "gram", - "percentage": 21.78, - "basis_member": 0, - "optional": 0, - "notes": "toasted & coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sift the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the puree and water until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Alternately mix the dry and wet ingredients into the butter mixture until smooth, followed by the chocolate chips and nuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_creme_brulee", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Crème Brûlée", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 2117, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Crème brûlée has a shelf life up to 3 days.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 470, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 732, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pumpkin_puree", - "position": 4, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 325, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon", - "position": 5, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 9, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, milk, and ½ of the sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixing bowl, whisk together the puree, cinnamon, egg yolks, the other ½ of the sugar, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Temper the hot cream into the egg yolk mixture and whisk until smooth and emulsified.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Remove excess air bubbles from the top of the crème brûlée custard by placing a piece of plastic wrap or paper towel on the surface and then removing.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pumpkin_ganache", "schema_version": 2, @@ -112918,609 +28907,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pumpkin_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1550, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 663, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_powdered_glucose", - "position": 4, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_ice_cream_stabilizer", - "position": 7, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_invert_sugar", - "position": 9, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 77, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_yolk", - "position": 10, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_brown_sugar", - "position": 11, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_pumpkin_puree", - "position": 12, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_cinnamon", - "position": 13, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_ginger", - "position": 14, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¾ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_nutmeg", - "position": 15, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk power, glucose, and vanilla bean seeds to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat until warm, 105°F (40°C); whisk in the granulated sugar combined with the stabilizer and salt, followed by the invert sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the brown sugar that has been whisked together with the egg yolks.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk in the puree that has been combined with the spices.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir with a whisk and heat to 185°F (85°C). Strain.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1620, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pumpkin_puree", - "position": 4, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cinnamon", - "position": 6, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¾ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_ginger", - "position": 7, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_nutmeg", - "position": 8, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cloves", - "position": 9, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_yolk", - "position": 11, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_sugar", - "position": 12, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_water", - "position": 13, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the puree with the spices over a water bath until warm, about 110°F (43°C), or until slightly thickened. Gently melt the gelatin and combine with the puree until smooth; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar, water, and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the pumpkin mixture into the pâte à bombe, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "pumpkin_muffin", "schema_version": 2, @@ -113840,868 +29226,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "pumpkin_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2180, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pumpkin_puree", - "position": 1, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 618, - "unit_id": "gram", - "percentage": 181.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 681, - "unit_id": "gram", - "percentage": 200.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 29.41, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_canola_oil", - "position": 4, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 162, - "unit_id": "gram", - "percentage": 47.65, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 5.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.94, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cinnamon", - "position": 8, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 4.12, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_ginger", - "position": 9, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 1.18, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cloves", - "position": 10, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.59, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_golden_raisins", - "position": 11, - "ingredient_id": "golden_raisins", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 66.76, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the puree, sugar, and eggs.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the oil.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the raisins and mix until the batter is homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350ºF (177ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Panna Cotta", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1800, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_pumpkin_puree", - "position": 5, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 275, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_brown_sugar", - "position": 7, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cinnamon", - "position": 8, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 9, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_ginger", - "position": 9, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cloves", - "position": 10, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the puree with the spices until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine everything-except the gelatin-in a saucepan and bring to a boil, whisking periodically.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Off the heat, add the bloomed and drained gelatin to the mixture and gently whisk to minimize air bubbles.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Pie Filling", - "summary": "Yield: two 10-inch pies", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 2150, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 10-inch pies\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_pumpkin_puree", - "position": 2, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 720, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_brown_sugar", - "position": 4, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cinnamon", - "position": 6, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_ginger", - "position": 7, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cloves", - "position": 8, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_nutmeg", - "position": 9, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_milk_whole", - "position": 10, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 415, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_heavy_cream", - "position": 11, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 415, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, lightly mix the eggs to blend. Add the puree and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sugars and spices, followed by the milk and cream.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 300°F (149ºC) in blind baked pie shells until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "pumpkin_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Pumpkin Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 550, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Sweet potato puree may be substituted for pumpkin puree.\",\"Spices may be added to the batter as desired.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_pumpkin_puree", - "position": 1, - "ingredient_id": "pumpkin_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sifted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_light_corn_syrup", - "position": 3, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk all of the ingredients together until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 200°F (93°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "puppy_chow", "schema_version": 2, @@ -114901,211 +29425,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "quark_souffle", - "schema_version": 2, - "save_version": 6, - "title": "Quark Soufflé", - "summary": "Yield: fifteen 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1700, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifteen 5.5 oz soufflé ramekins\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_non_fat_quark_cheese", - "position": 1, - "ingredient_id": "non_fat_quark_cheese", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sour_cream", - "position": 2, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_white_powder", - "position": 8, - "ingredient_id": "egg_white_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the cheese, sour cream, zest, egg yolks, and salt until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and egg white powder.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gently fold the meringue into the cheese mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fill the soufflé ramekins that have been buttered and sugared.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until risen, browned, and a little soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "German for \"fresh curd,\" quark is a fresh and slightly drained cows' milk cheese common in the cuisines of Germany and Northern Europe. This soufflé is versatile and truly delicious. Try pairing it with fruits of the season.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "quiche_custard", "schema_version": 2, @@ -115302,614 +29621,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "quiche_custard_tart_filling", - "schema_version": 2, - "save_version": 6, - "title": "Quiche Custard Tart Filling", - "summary": "Yield: four 9-inch tarts", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": 4, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: four 9-inch tarts\",\"Adjust the seasonings according to the type of quiche you are making and your taste.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cr_me_fraiche", - "position": 3, - "ingredient_id": "cr_me_fraiche", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_black_pepper", - "position": 6, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "freshly ground (¾ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_nutmeg", - "position": 7, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cayenne_pepper", - "position": 8, - "ingredient_id": "cayenne_pepper", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the milk, cream, crème fraiche, eggs, and seasonings until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the custard through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 250ºF (121ºC) in blind baked shells until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "quick_puff_pastry", - "schema_version": 2, - "save_version": 6, - "title": "Quick Puff Pastry", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1686, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Acids like vinegar help relax gluten, making the dough more pliable.\",\"Quick puff pastry is ideal for applications where a \\\"high rise\\\" is not a priority, and/or if time constraints are a concern.\",\"Puff pastry can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 315, - "unit_id": "gram", - "percentage": 42, - "basis_member": 0, - "optional": 0, - "notes": "ice cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_white_vinegar", - "position": 5, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.33, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 60.53, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, frozen", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the flour, butter, and salt until well combined.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the water and vinegar. Add to the dry ingredients and mix to form a dough. Do not over mix, but be sure there are no dry spots of flour in the dough.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the cubed and frozen butter and mix just until combined. Pat the dough into a square, wrap in plastic wrap, and refrigerate for at least 1 hour.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Give the dough 4 book turns total, resting for 30 minutes in between every 2 turns.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "raisin_challah", - "schema_version": 2, - "save_version": 6, - "title": "Raisin Challah", - "summary": "Yield: three 675 g loaves", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2045, - "yield_unit_id": "gram", - "yield_servings": 3, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: three 675 g loaves\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": "room temperature", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_yeast_fresh", - "position": 2, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_all_purpose", - "position": 3, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_honey", - "position": 5, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": 7, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 3, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_olive_oil", - "position": 8, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": 3.5, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_raisins", - "position": 10, - "ingredient_id": "raisins", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 30, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix all of the ingredients-except the raisins-on low speed for 2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Switch to a hook attachment and mix on medium speed until gluten is developed (5-7 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the raisins and mix as briefly as possible until evenly distributed (30-45 seconds).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Place the dough in an oiled bowl and bulk proof for 60 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Turn/fold/flip over and continue to bulk proof for another 60 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Divide into 675 gram pieces. Shape into balls, then divide each ball into 168 gram pieces.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Pre-shape the pieces into ropes of equal length, about 8 to 10-inches.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Shape the loaves by braiding the 4 ropes together.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Brush lightly with egg wash, proof, and egg wash a second time.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Bake at 350°F (177°C) until the internal temperature reaches 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "raising_canes_sauce", "schema_version": 2, @@ -116150,764 +29861,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "raspberry_fig_sangria_granite", - "schema_version": 2, - "save_version": 6, - "title": "Raspberry & Fig Sangria Granité", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1700, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_red_wine", - "position": 1, - "ingredient_id": "red_wine", - "subrecipe_id": null, - "quantity": 187, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_ruby_port", - "position": 2, - "ingredient_id": "ruby_port", - "subrecipe_id": null, - "quantity": 187, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_raspberry_puree", - "position": 4, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_fresh_figs", - "position": 5, - "ingredient_id": "fresh_figs", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lemon_juice", - "position": 7, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_gelatin_sheet", - "position": 8, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_water", - "position": 9, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_orange_juice", - "position": 10, - "ingredient_id": "orange_juice", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, heat the wines until warm, 105°F (40°C); ignite with a flame and let the alcohol burn off.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the water, puree, figs, sugar, and lemon juice.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Simmer for 15-20 minutes, or until the figs are broken down and very soft; set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir the bloomed gelatin into the raspberry/fig mixture to dissolve.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cool over an ice bath and add the orange juice. Strain.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Measure and adjust the °Brix between 15°-20° depending on your taste.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Pour into a shallow pan and begin to freeze, stirring every 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "raspberry_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Raspberry Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2040, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_raspberry_puree", - "position": 4, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_raspberry_liqueur", - "position": 6, - "ingredient_id": "raspberry_liqueur", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and liqueur. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "raspberry_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Raspberry Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This base recipe can be used for other fruit purees with a similar sugar density. Simply adjust the sugar and acidity to taste.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_raspberry_puree", - "position": 1, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_or_lime_juice", - "position": 3, - "ingredient_id": "lemon_or_lime_juice", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, whisk the puree and sugar together and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and reduce until thickened to desired consistency, stirring periodically.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cool the sauce down immediately over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the lemon or lime juice to taste.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "raspberry_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Raspberry Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"For variation, try substituting raspberry vinegar for the lemon juice.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 530, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dextrose", - "position": 2, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sorbet_stabilizer", - "position": 4, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_raspberry_puree", - "position": 5, - "ingredient_id": "raspberry_puree", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, whisk in the puree and juice and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "ravioli_filling", "schema_version": 2, @@ -117117,636 +30070,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "red_velvet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Red Velvet Cake", - "summary": "Yield: one 9-inch cake pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1160, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch cake pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": 42.62, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 305, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 32.79, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_buttermilk", - "position": 4, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 88.52, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.97, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_white_vinegar", - "position": 6, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.97, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_red_gel_food_coloring", - "position": 7, - "ingredient_id": "red_gel_food_coloring", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.97, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_all_purpose", - "position": 8, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 73.77, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_flour_cake", - "position": 9, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 26.23, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cocoa_powder", - "position": 10, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": 5.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.97, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_baking_soda", - "position": 12, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.97, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_baking_powder", - "position": 13, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.98, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, beating well in between additions, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the wet ingredients until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Alternately add the sifted dry and wet ingredients in 3 additions and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 325ºF (163ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "red_wine_reduction", - "schema_version": 2, - "save_version": 6, - "title": "Red Wine Reduction", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 750, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_red_wine", - "position": 1, - "ingredient_id": "red_wine", - "subrecipe_id": null, - "quantity": 1500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_ruby_port", - "position": 2, - "ingredient_id": "ruby_port", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_whole_cloves", - "position": 4, - "ingredient_id": "whole_cloves", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon_sticks", - "position": 5, - "ingredient_id": "cinnamon_sticks", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_orange_zest", - "position": 6, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_bay_leaf", - "position": 7, - "ingredient_id": "bay_leaf", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring all of the ingredients to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and reduce slowly by ⅔, or until desired consistency is reached.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "redcurrant_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Redcurrant Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1452, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_redcurrant_puree", - "position": 4, - "ingredient_id": "redcurrant_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar and egg yolks; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the pâte à bombe. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "reeces_peanut_butter_cup_filling", "schema_version": 2, @@ -118003,383 +30326,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "rhubarb_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Rhubarb Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2170, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_rhubarb_puree", - "position": 4, - "ingredient_id": "rhubarb_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_grenadine", - "position": 6, - "ingredient_id": "grenadine", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice and grenadine. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "rhubarb_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Rhubarb Pie Filling", - "summary": "Yield: one 9-inch pie", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 840, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch pie\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_rhubarb", - "position": 1, - "ingredient_id": "rhubarb", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_instant_tapioca", - "position": 6, - "ingredient_id": "instant_tapioca", - "subrecipe_id": null, - "quantity": 29, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a bowl, mix the diced rhubarb, sugar, zest, vanilla, salt, and tapioca. Allow the rhubarb to macerate at room temperature for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fill a 9-inch pie crust with the rhubarb pie filling.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cover with the top crust and seal the edges. Cut several slits in the top crust.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Lightly cover the pie with plastic wrap and refrigerate for 30-60 minutes before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "richs_classic_white_icing", "schema_version": 2, @@ -118828,2332 +30774,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "roquefort_walnut_crackers", - "schema_version": 2, - "save_version": 6, - "title": "Roquefort-Walnut Crackers", - "summary": "Yield: approximately 25 dozen crackers", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 2400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: approximately 25 dozen crackers\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 720, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.08, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_black_pepper", - "position": 5, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 0.97, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_herbs_de_provence", - "position": 6, - "ingredient_id": "herbs_de_provence", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.69, - "basis_member": 0, - "optional": 0, - "notes": "1 tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_roquefort_cheese", - "position": 7, - "ingredient_id": "roquefort_cheese", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": 126.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 63.06, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_water", - "position": 9, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 43, - "unit_id": "gram", - "percentage": 5.97, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_walnut", - "position": 10, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 31.53, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixing bowl, whisk the dry ingredients together to blend.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix the dry ingredients, cheese and butter until the butter is ¼-inch or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add ½ of the water to the dry ingredients and mix for 10-20 seconds on low speed to hydrate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the remaining water and walnuts; mix until the dough just comes together. Do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Wrap the dough in plastic wrap and chill for a minimum of 1 hour, or overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Roll the dough to ⅛-inch thick and cut with a fluted wheel cutter ¾-inch wide x 3-inches long. Chill the crackers before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325°F (163°C) until puffed and browned on the edges (about 15-20 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Store in airtight containers for up to 3 days.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "rose_petal_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Rose Petal Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"For a cold infusion, double the weight of rose buds called for in the recipe and infuse for 5 days in the refrigerator.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 725, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_organic_dried_rosebuds_petals", - "position": 2, - "ingredient_id": "organic_dried_rosebuds_petals", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 255, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_powder", - "position": 4, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_dextrose", - "position": 5, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_powdered_glucose", - "position": 6, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_ice_cream_stabilizer", - "position": 8, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bring the water to a boil; pour it over the rosebuds and cover. Set aside to infuse for 12 hours, then strain through a fine-mesh strainer pressing on the rose buds to extract all of the liquid. Rescale the liquid to the original weight with more water as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the rose infusion and cream. With an immersion blender, blend in the milk powder, dextrose, and glucose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat until warm, 105°F (40°C); whisk in the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "rosemary_cornmeal_sable_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Rosemary-Cornmeal Sablé Cookies", - "summary": "Yield: fifty 2-inch cookies", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1125, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: fifty 2-inch cookies\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 149.78, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_zest", - "position": 3, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.44, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_fresh_rosemary", - "position": 4, - "ingredient_id": "fresh_rosemary", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 1.76, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 26.43, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_honey", - "position": 6, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 13.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_bread", - "position": 8, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cornmeal", - "position": 9, - "ingredient_id": "cornmeal", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, zest, and rosemary.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, followed by the honey and extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Refrigerate the dough until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Roll to ¼-inch thick, cut into desired size and place on parchment-lined sheet pans.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Brush the cookies with egg wash and sprinkle with granulated sugar before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) until light golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "roulade_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Roulade Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1060, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"This is a great recipe for making bûche de Noël.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 96, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 90, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 1.2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 80, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_invert_sugar", - "position": 5, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 10, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 48, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_vanilla_extract", - "position": 9, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 1, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a stiff peak French meringue with the egg whites, granulated sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the egg yolks and invert sugar until light and thick. Fold into the meringue until streaky.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Fold the sifted dry ingredients into the meringue mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sacrifice some of the batter into the melted butter and extract mixture, then fold the butter mixture into the rest of the batter until homogenous. Do not over fold.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "rugelach_dough", - "schema_version": 2, - "save_version": 6, - "title": "Rugelach Dough", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1550, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"To inhibit gluten development, keep all ingredients and mixing bowl as cold as possible.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 7.27, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.45, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 81.82, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cream_cheese", - "position": 5, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": 81.82, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sour_cream", - "position": 6, - "ingredient_id": "sour_cream", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 10.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix together the flour, sugar, salt, and cold butter until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the cream cheese and sour cream and continue to mix until a smooth dough is formed. Do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Portion the dough as desired and wrap in plastic wrap. Refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "rum_sabayon", - "schema_version": 2, - "save_version": 6, - "title": "Rum Sabayon", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 980, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dark_or_spiced_rum", - "position": 2, - "ingredient_id": "dark_or_spiced_rum", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_brown_sugar", - "position": 5, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks and set aside in the refrigerator.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the rum, egg yolks, sugars, and salt over a water bath until thickened and a ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sabayon over an ice bath until cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Fold the whipped cream into the sabayon.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sable_breton", - "schema_version": 2, - "save_version": 6, - "title": "Sablé Breton", - "summary": "In Brittany, they traditionally use semi-salted butter (beurre demi-sel) to make this recipe.", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1260, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This dough can be chilled, then rolled out to desired thickness and cut with cookies cutters or rolled into logs and cut into coins.\",\"Alternatively, the dough can be piped into molds or rings when freshly made and soft.\",\"The citrus zest is optional and may be eliminated or replaced with vanilla extract or seeds if desired. Similarly, the salt can be adjusted to taste.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": 70.48, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": 70.48, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.55, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_zest", - "position": 4, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 35.24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and zests.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the egg yolks one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the flour and salt and mix just until combined; do not over mix.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 300°F (149°C) until light golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sacher_torte_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Sacher Torte Sheet Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1530, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 283.75, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 162, - "unit_id": "gram", - "percentage": 202.5, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_yolk", - "position": 3, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 200, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 125, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 268, - "unit_id": "gram", - "percentage": 335, - "basis_member": 0, - "optional": 0, - "notes": "58-66%, melted/warm", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": 300, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_confectioners_sugar", - "position": 7, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": 81.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_cream_of_tartar", - "position": 8, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 3.13, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_almond_flour", - "position": 9, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 283.75, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_flour_all_purpose", - "position": 10, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 6.25, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the yolks and whole eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the warm melted chocolate and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Gently fold the meringue into the chocolate until streaky, followed by the sifted dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "savory_tomato_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Savory Tomato Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This base recipe can be spiced as desired; suggestions include: celery salt, hot sauce, fresh basil, horseradish, and replacing some of the tomato juice with beef stock.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 575, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dextrose", - "position": 2, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 310, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "divided", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sorbet_stabilizer", - "position": 3, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_black_pepper", - "position": 5, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_tomato_juice", - "position": 6, - "ingredient_id": "tomato_juice", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh & strained", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_worcestershire_sauce", - "position": 7, - "ingredient_id": "worcestershire_sauce", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, whisk ⅔ of the dextrose into the cold water, then using an immersion blender, blend until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the remaining dextrose with the stabilizer, salt, and pepper.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the remaining dextrose that has been blended with the stabilizer, salt, and pepper.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, add the juice and Worcestershire sauce and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "scandinavian_butter_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Scandinavian Butter Cookies", - "summary": "Yield: one hundred 1½-inch cookies", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1478, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one hundred 1½-inch cookies\",\"Refrigerate the piped cookies until firm before baking; this helps to retain the definition of the cookies and minimize spreading.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_paste", - "position": 1, - "ingredient_id": "almond_paste", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 73.91, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 36.96, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 21.74, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 13.04, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.09, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.54, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 73.91, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_cake", - "position": 8, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 73.91, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_flour_all_purpose", - "position": 9, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 26.09, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the almond paste and sugar until crumbly.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a separate bowl, whisk the whole eggs, egg whites, extract, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add ½ the egg mixture in 3 additions to the almond paste mixture, mixing well between each addition, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the mixture forms a smooth consistency, beat in the butter until the mixture is light.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Beat in the other ½ of the egg mixture, followed by the sifted flours. Mix just until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pipe out rosettes, or other desired shape with a star tip.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) until the edges are golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "scones", - "schema_version": 2, - "save_version": 6, - "title": "Scones", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1346, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Inclusions can be varied. Some suggestions include chopped nuts, dried fruits and berries, raisins/currants, candied ginger, and chocolate chips.\",\"Scones can be made in advance and frozen for up to 2 months, then baked fresh as needed.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 568, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 84, - "unit_id": "gram", - "percentage": 14.79, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 18, - "unit_id": "gram", - "percentage": 3.17, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.76, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 39.96, - "basis_member": 0, - "optional": 0, - "notes": "cold & cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_milk_whole", - "position": 6, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 19.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_buttermilk", - "position": 7, - "ingredient_id": "buttermilk", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 19.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whole", - "position": 8, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 17.61, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_inclusions", - "position": 9, - "ingredient_id": "inclusions", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 19.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the whole milk, buttermilk, and eggs and keep cold.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix together the dry ingredients and butter until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Mix the inclusions into the dry mixture to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the egg/milk mixture to the dry ingredients and mix just until a dough is roughly formed. Do not over mix. Pat or roll out the dough to about ¾-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cut the scones into the desired shape and brush the top of each with heavy cream.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until lightly browned and just baked through.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "scrambled_egg_patty", "schema_version": 2, @@ -121634,649 +31254,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "semolina_pudding", - "schema_version": 2, - "save_version": 6, - "title": "Semolina Pudding", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1850, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_semolina", - "position": 5, - "ingredient_id": "semolina", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_lemon_zest", - "position": 8, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_orange_zest", - "position": 9, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the milk, first weight of sugar, vanilla bean seeds, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Slowly pour the semolina into the milk, stirring with a whisk or wooden spoon. Continue stirring as the mixture thickens (about 2-3 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Reduce the heat to low and cook until the mixture thickens and the semolina is tender, stirring often.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Meanwhile, whisk the eggs with the second weight of sugar until well blended.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Temper ½ of the hot semolina mixture into the eggs. Combine both mixtures together, along with the zests.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 300°F (149°C) in a water bath, covered, until set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sesame_ginger_brittle", - "schema_version": 2, - "save_version": 6, - "title": "Sesame-Ginger Brittle", - "summary": "Yield: one 16 x 24-inch sheet", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1147, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 16 x 24-inch sheet\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 395, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sesame_seeds", - "position": 4, - "ingredient_id": "sesame_seeds", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_black_sesame_seeds", - "position": 5, - "ingredient_id": "black_sesame_seeds", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_candied_ginger", - "position": 6, - "ingredient_id": "candied_ginger", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_butter", - "position": 7, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_soda", - "position": 10, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the sugar and water to a boil, stirring to dissolve the sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the glucose and continue cooking to 275°F (135°C), without stirring.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sesame seeds and cook to 308°F (153°C) over moderate heat, stirring continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Off the heat, stir in the ginger, butter, extract, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the baking soda, stirring well to incorporate.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour the mixture onto a silicone baking mat and spread with an oiled spatula.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Because sesame seeds have a high oil content, they turn rancid quickly. Store them in an airtight container for up to 3 months; refrigerate for up to 6 months; or freeze for up to 1 year.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sesame_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Sesame Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1300, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 293, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 293, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_glucose_syrup", - "position": 4, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sesame_seeds", - "position": 6, - "ingredient_id": "sesame_seeds", - "subrecipe_id": null, - "quantity": 504, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the milk, butter, sugar, glucose, and salt together.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Stir in the sesame seeds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Roll into desired sized balls and place on a silicone baking mat. Lightly flatten each ball with the palm of your hand.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "shake_shack_shacksauce", "schema_version": 2, @@ -122759,3315 +31736,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "shiny_chocolate_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Shiny Chocolate Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This chocolate sauce is dark and shiny like a beautiful piece of patent leather. Use at room temperature or warm.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 1250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 900, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cocoa_powder", - "position": 3, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, sugar, cocoa powder, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the cream and reduce on medium-low heat by approximately ⅓, whisking periodically to prevent scalding on the bottom of the pot.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "shiny_red_glaze", - "schema_version": 2, - "save_version": 6, - "title": "Shiny Red Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Red coloring may be substituted for other colors as desired.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 138, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 195, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_glucose_syrup", - "position": 5, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_condensed_milk", - "position": 6, - "ingredient_id": "condensed_milk", - "subrecipe_id": null, - "quantity": 215, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chocolate_white", - "position": 7, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 315, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_red_cocoa_butter_color", - "position": 8, - "ingredient_id": "red_cocoa_butter_color", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the water, sugar, and glucose to a boil. Cool to 185°F (85ºC) and stir in the condensed milk and the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate and cocoa butter color together and add to the syrup mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Blend the glaze with an immersion blender until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and refrigerate overnight.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use at about 82°F (28ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "smoked_salmon_souffle", - "schema_version": 2, - "save_version": 6, - "title": "Smoked Salmon Soufflé", - "summary": "Yield: six 5.5 oz soufflé ramekins", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1330, - "yield_unit_id": "gram", - "yield_servings": 6, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: six 5.5 oz soufflé ramekins\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": 198.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_bread", - "position": 2, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 57, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": 666.67, - "basis_member": 0, - "optional": 0, - "notes": "185ºF/85ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cream_cheese", - "position": 4, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 149.12, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": 210.53, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_smoked_salmon", - "position": 6, - "ingredient_id": "smoked_salmon", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 350.88, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_chives", - "position": 7, - "ingredient_id": "chives", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "gram", - "percentage": 1.75, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped (3 T)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_fresh_dill", - "position": 8, - "ingredient_id": "fresh_dill", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 8.77, - "basis_member": 0, - "optional": 0, - "notes": "chopped (1 tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_fresh_parsley", - "position": 9, - "ingredient_id": "fresh_parsley", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 8.77, - "basis_member": 0, - "optional": 0, - "notes": "chopped (1 tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_lemon_zest", - "position": 10, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 3.51, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_black_pepper", - "position": 11, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 8.77, - "basis_member": 0, - "optional": 0, - "notes": "ground (1 tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_salt", - "position": 12, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 8.77, - "basis_member": 0, - "optional": 0, - "notes": "1 tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_cayenne_pepper", - "position": 13, - "ingredient_id": "cayenne_pepper", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 6.58, - "basis_member": 0, - "optional": 0, - "notes": "¾ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_egg_whites", - "position": 14, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 631.58, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_cream_of_tartar", - "position": 15, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 5.26, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the butter in a saucepan, whisk in the flour and cook for 2 minutes to make a roux.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the hot milk into the roux in 3 additions.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bring the mixture to a boil and whisk until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk in the cream cheese, followed by the egg yolks.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir in the smoked salmon and seasonings; set aside to cool to room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Make a medium peak French meringue with the egg whites and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Fold the meringue into the room temperature base.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Fill the soufflé ramekins that have been buttered and lined with bread crumbs.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Bake at 375°F (191°C) until risen, browned, and a little soft inside.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "snickerdoodle_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Snickerdoodle Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1700, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": 54.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 440, - "unit_id": "gram", - "percentage": 70.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": 7.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 24, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 625, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cream_of_tartar", - "position": 6, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.28, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix just until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Roll the dough into desired sized balls and toss each ball in cinnamon sugar before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 275°F (135°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_apple_cider_caramels", - "schema_version": 2, - "save_version": 6, - "title": "Soft Apple Cider Caramels", - "summary": "Yield: one hundred and thirty 1-inch squares", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 4402, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one hundred and thirty 1-inch squares\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_apple_cider", - "position": 1, - "ingredient_id": "apple_cider", - "subrecipe_id": null, - "quantity": 1893, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_apple_cider_reduction", - "position": 2, - "ingredient_id": "apple_cider_reduction", - "subrecipe_id": null, - "quantity": 237, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 875, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_honey", - "position": 4, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_apple_pectin", - "position": 7, - "ingredient_id": "apple_pectin", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_vanilla_bean", - "position": 9, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cinnamon_stick", - "position": 10, - "ingredient_id": "cinnamon_stick", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_sugar", - "position": 11, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_water", - "position": 12, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_glucose_syrup", - "position": 13, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Reduce the 2 quarts of apple cider to 8 ounces.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bring the cider reduction, cream, honey, butter, sugar, pectin, salt, vanilla bean, and cinnamon stick to a boil. Set aside to infuse for 30 minutes, then strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a caramel with the second weight of sugar, water, and glucose.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the cider reduction mixture into the caramel in 3 additions and cook over medium-high heat to 251°F (122°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pour onto a silicone baking mat with oiled candy bars measuring about 13 x 10½ x ½-inch or into an oiled 12-inch ring. Allow to cool, then cut into 1-inch squares with an oiled knife.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_chocolate_caramels", - "schema_version": 2, - "save_version": 6, - "title": "Soft Chocolate Caramels", - "summary": "Yield: one 9-inch cake ring", - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1595, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch cake ring\",\"Store the caramels in an air tight container at room temperature for up to one week.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_glucose_syrup", - "position": 4, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_chocolate_dark", - "position": 5, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "70-72%, chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Lightly oil the inside of a cake ring and place it on a silicone mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a deep saucepan, combine the cream, sugars, and glucose. Cook to 245°F (118°C), stirring continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Off the heat, add the chopped chocolate, butter, and salt; whisking to emulsify.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Immediately pour the mixture into the oiled cake ring. At this point you may sprinkle the top of the freshly poured caramel with fleur de sel, chopped toasted nuts, coconut shavings, or other toppings if desired.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Allow to cool to room temperature until set, then cut the caramel into desired shapes.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_chocolate_molasses_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Soft Chocolate-Molasses Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1369, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 35.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": 76.19, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 19.05, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 23.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_molasses", - "position": 5, - "ingredient_id": "molasses", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": 38.1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_white_vinegar", - "position": 6, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 3.57, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.19, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_bread", - "position": 8, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 420, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cocoa_powder", - "position": 9, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 105, - "unit_id": "gram", - "percentage": 25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_soda", - "position": 10, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 3.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.67, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Slowly add the molasses, vinegar, and extract.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill until firm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Portion the dough into 20 g (0.7 oz) balls and dredge in granulated sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350°F (177°C) for 8-10 minutes. The cookies will spread and the sugar crust will crack.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_coconut_dacquoise", - "schema_version": 2, - "save_version": 6, - "title": "Soft Coconut Dacquoise", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1190, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 390, - "unit_id": "gram", - "percentage": 750, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 164, - "unit_id": "gram", - "percentage": 315.38, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cream_of_tartar", - "position": 3, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 5.77, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 253, - "unit_id": "gram", - "percentage": 486.54, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_desiccated_coconut", - "position": 5, - "ingredient_id": "desiccated_coconut", - "subrecipe_id": null, - "quantity": 164, - "unit_id": "gram", - "percentage": 315.38, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_almond_flour", - "position": 6, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 164, - "unit_id": "gram", - "percentage": 315.38, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_cake", - "position": 7, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 52, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 4.81, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Sift the dry ingredients then combine with the coconut. Fold into the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Spread onto a prepared sheet pan that has been lightly sprayed with pan spray.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Sift additional powdered sugar on top of the cake before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until firm to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_dinner_rolls", - "schema_version": 2, - "save_version": 6, - "title": "Soft Dinner Rolls", - "summary": "Yield: twenty-four 50 g (1.8 oz) rolls", - "categories_json": "[\"breads\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breads\",\"classic\"]", - "yield_quantity": 1177, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty-four 50 g (1.8 oz) rolls\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 185, - "unit_id": "gram", - "percentage": 29.6, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_milk_powder", - "position": 2, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 4.8, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 8, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 9.6, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 12, - "unit_id": "gram", - "percentage": 1.92, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_09_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 9.6, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 440, - "unit_id": "gram", - "percentage": 70.4, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": 51.2, - "basis_member": 0, - "optional": 0, - "notes": "110°F/43°C", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_yeast_fresh", - "position": 3, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 3.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a sponge with the flour, water, and yeast; cover and let proof in a warm place for about 20 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Once the sponge is ready, mix everything together-except the butter-with a dough hook for about 5 minutes, or until gluten is developed and a \"window\" is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the butter in 3 additions; mix until silky and all of the butter has been absorbed into the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bulk ferment for 30 minutes at room temperature.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Turn the dough out onto a floured bench and gently de-gas.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Divide into desired sized pieces and pre-shape into rounds. Cover and bench rest for 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Final shape each piece into tight rounds. Proof for about 30-45 minutes, or until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Egg wash and bake at 375ºF (191ºC) until the internal temperature is 190ºF (88ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_gingerbread_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Soft Gingerbread Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1454, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_brown_sugar", - "position": 1, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": 85.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_honey", - "position": 2, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 14.93, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 59.7, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 5.97, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 335, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_baking_powder", - "position": 6, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 17, - "unit_id": "gram", - "percentage": 5.07, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_soda", - "position": 7, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 1.19, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.49, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cinnamon", - "position": 9, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 4.48, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_ginger", - "position": 10, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.9, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_cardamom", - "position": 11, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.9, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cloves", - "position": 12, - "ingredient_id": "cloves", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.6, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_butter", - "position": 13, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 74.63, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_half_half", - "position": 14, - "ingredient_id": "half_half", - "subrecipe_id": null, - "quantity": 212, - "unit_id": "gram", - "percentage": 63.28, - "basis_member": 0, - "optional": 0, - "notes": "room temperature", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the sugar, honey, whole eggs, and yolk until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients and whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the butter and half & half and slowly add to the egg mixture while whisking.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325°F (163°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_hazelnut_dacquoise", - "schema_version": 2, - "save_version": 6, - "title": "Soft Hazelnut Dacquoise", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1476, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\",\"This recipe is ideal for gluten-free diets.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_hazelnut_flour", - "position": 1, - "ingredient_id": "hazelnut_flour", - "subrecipe_id": null, - "quantity": 326, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 364, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cream_of_tartar", - "position": 6, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_hazelnut", - "position": 7, - "ingredient_id": "hazelnut", - "subrecipe_id": null, - "quantity": 375, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "crushed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gently fold the sifted dry ingredients into the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread onto a prepared sheet pan that has been lightly sprayed with pan spray.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sprinkle the crushed hazelnuts on top of the cake before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_lime_almond_dacquoise", - "schema_version": 2, - "save_version": 6, - "title": "Soft Lime-Almond Dacquoise", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1295, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_flour", - "position": 1, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whites", - "position": 4, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cream_of_tartar", - "position": 6, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lime_zest", - "position": 7, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_whole_almonds", - "position": 8, - "ingredient_id": "whole_almonds", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a stiff peak French meringue with the egg whites, sugar, and cream of tartar. Once stiff peaks are achieved, whisk in the zest to incorporate.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gently fold the sifted dry ingredients into the meringue.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread onto a prepared sheet pan that has been lightly sprayed with pan spray.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sprinkle the chopped almonds on top of the cake before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until firm to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "soft_pistachio_dacquoise", - "schema_version": 2, - "save_version": 6, - "title": "Soft Pistachio Dacquoise", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1380, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_almond_flour", - "position": 1, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 320, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_pistachio_paste", - "position": 4, - "ingredient_id": "pistachio_paste", - "subrecipe_id": null, - "quantity": 48, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whites", - "position": 5, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 120, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cream_of_tartar", - "position": 7, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_pistachio_nuts", - "position": 8, - "ingredient_id": "pistachio_nuts", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "coarsely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a food processor, grind the flour, powdered sugar, salt, and pistachio paste together.", - "critical_control_point": 0, - "equipment_ids": [ - "food_processor" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a stiff peak French meringue with the egg whites, granulated sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Sacrifice some of the meringue to lighten the pistachio paste mixture, then gently fold in the rest of the meringue until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Spread onto a prepared sheet pan that has been lightly sprayed with pan spray.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sprinkle the chopped pistachio nuts on top of the cake before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350ºF (177ºC) until firm to the touch and a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sorbet_syrup", - "schema_version": 2, - "save_version": 6, - "title": "Sorbet Syrup", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 2500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_powered_glucose", - "position": 2, - "ingredient_id": "powered_glucose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sorbet_stabilizer", - "position": 3, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 1125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_invert_sugar", - "position": 5, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Mix the sugar, glucose, and stabilizer until well combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, heat the water until warm, 105°F (40°C).", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk in the dry ingredients, followed by the invert sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sour_cherry_pie_filling", - "schema_version": 2, - "save_version": 6, - "title": "Sour Cherry Pie Filling", - "summary": "Yield: one 9-inch pie", - "categories_json": "[\"tart_pie_fillings\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"tart_pie_fillings\",\"classic\"]", - "yield_quantity": 872, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 9-inch pie\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sour_cherries", - "position": 1, - "ingredient_id": "sour_cherries", - "subrecipe_id": null, - "quantity": 625, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "pitted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 145, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 45, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_juice", - "position": 4, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_almond_extract", - "position": 5, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "seeds (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_instant_tapioca", - "position": 8, - "ingredient_id": "instant_tapioca", - "subrecipe_id": null, - "quantity": 36, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "small cubes", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a bowl, mix the cherries, sugars, juice, extract, vanilla, salt, and tapioca. Allow the cherries to macerate at room temperature for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fill a 9-inch pie crust with the cherry pie filling and dot with butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cover with the top crust and seal the edges. Cut several slits in the top crust.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Lightly cover the pie with plastic wrap and refrigerate for 30-60 minutes before baking.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 375°F (191°C) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "sour_cream", "schema_version": 2, @@ -126484,880 +32152,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "speculoos", - "schema_version": 2, - "save_version": 6, - "title": "Speculoos", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1857, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\",\"Dried cake crumbs can be substituted for graham cracker crumbs.\",\"Alternatively, you can roll the dough in between 2 pieces of parchment paper or silicone baking mats to ¼-inch thick, chill the dough, then cut into desired shapes.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 66.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_graham_cracker_crumbs", - "position": 3, - "ingredient_id": "graham_cracker_crumbs", - "subrecipe_id": null, - "quantity": 114, - "unit_id": "gram", - "percentage": 16.74, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 121, - "unit_id": "gram", - "percentage": 17.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_honey", - "position": 5, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 84, - "unit_id": "gram", - "percentage": 12.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 681, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.37, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_baking_powder", - "position": 8, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.47, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_soda", - "position": 9, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.47, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cinnamon", - "position": 10, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": 2.06, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_nutmeg", - "position": 11, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.03, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_ginger", - "position": 12, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.03, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_almond", - "position": 13, - "ingredient_id": "almond", - "subrecipe_id": null, - "quantity": 128, - "unit_id": "gram", - "percentage": 18.8, - "basis_member": 0, - "optional": 0, - "notes": "sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, and graham cracker crumbs.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the milk and honey to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Alternately add the sifted dry and wet ingredients to the butter mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Mix in the sliced almonds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Flatten the dough evenly onto a half sheet pan and refrigerate until cold and firm.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cut the chilled dough into 3-inch wide strips and cut each strip into ¼-inch slices.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Place the slices flat onto a sheet pan.", - "critical_control_point": 0, - "equipment_ids": [ - "sheet_pan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 350°F (177°C) until the edges are browned.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "spice_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Spice Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_milk", - "position": 1, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 567, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 333, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_fresh_ginger", - "position": 3, - "ingredient_id": "fresh_ginger", - "subrecipe_id": null, - "quantity": 43, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "peeled & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_whole_cloves", - "position": 4, - "ingredient_id": "whole_cloves", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon_sticks", - "position": 5, - "ingredient_id": "cinnamon_sticks", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_whole_allspice", - "position": 6, - "ingredient_id": "whole_allspice", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_bean", - "position": 7, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_butter", - "position": 9, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream and spices to a boil; set aside to infuse for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bring the spice infused cream back to a boil, then strain over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "spiced_candied_peanuts", - "schema_version": 2, - "save_version": 6, - "title": "Spiced Candied Peanuts", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 675, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"You may not need all of the egg whites.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_peanuts", - "position": 1, - "ingredient_id": "peanuts", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_whites", - "position": 2, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 58, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_muscovado_sugar", - "position": 3, - "ingredient_id": "muscovado_sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cinnamon", - "position": 5, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_ginger", - "position": 6, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_black_pepper", - "position": 7, - "ingredient_id": "black_pepper", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_five_spice_powder", - "position": 8, - "ingredient_id": "five_spice_powder", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Evenly coat the peanuts with the egg whites.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Stir together the remaining ingredients and toss with the moistened peanuts to coat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Spread onto a silicone baking mat and cook at 300°F (149ºC) until golden brown.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "spiced_poaching_liquid", - "schema_version": 2, - "save_version": 6, - "title": "Spiced Poaching Liquid", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 2350, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 2000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lemon_juice", - "position": 3, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_fresh_ginger", - "position": 4, - "ingredient_id": "fresh_ginger", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "peeled & sliced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_allspice", - "position": 5, - "ingredient_id": "allspice", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_star_anise", - "position": 6, - "ingredient_id": "star_anise", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon_stick", - "position": 7, - "ingredient_id": "cinnamon_stick", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_bean", - "position": 8, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the water, sugar, juice, and spices to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and add prepared fruit of choice. Keep covered with parchment paper until a paring knife inserted into the fruit yields little to no resistance.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "sheet_pan" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "spritz_cookie", "schema_version": 2, @@ -127679,137 +32473,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "stabilized_whipped_cream", - "schema_version": 2, - "save_version": 6, - "title": "Stabilized Whipped Cream", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1135, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Gelatin stiffens whipped cream enough to make it suitable as a filling, icing, or for piped decorations.\",\"We like to use stabilized whipped cream as a filling and icing for the Black Forest chocolate cake on page 68.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 7.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 940, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 qt", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_confectioners_sugar", - "position": 4, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whip the cream and sugar to soft peaks.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the bloomed and drained gelatin over a water bath with vanilla extract or alcohol to taste for flavoring and to help thin the gelatin. Allow to cool until tepid.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the melted gelatin to the whipped cream in a quick and steady stream while the mixer is running and whip until desired peaks.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "starch_glaze", "schema_version": 2, @@ -128045,1621 +32708,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "stollen", - "schema_version": 2, - "save_version": 6, - "title": "Stollen", - "summary": "Yield: three 600 g (1 lb 5 oz) loaves", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1800, - "yield_unit_id": "gram", - "yield_servings": 3, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: three 600 g (1 lb 5 oz) loaves\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "sponge", - "position": 1, - "name": "Sponge", - "notes_json": "[]" - }, - { - "id": "dough", - "position": 2, - "name": "Dough", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "dough", - "id": "line_04_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 415, - "unit_id": "gram", - "percentage": 66.4, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_05_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.28, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_06_cardamom", - "position": 3, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 3.75, - "unit_id": "gram", - "percentage": 0.6, - "basis_member": 0, - "optional": 0, - "notes": "ground (¾ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_07_allspice", - "position": 4, - "ingredient_id": "allspice", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_08_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": 45.6, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_09_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_10_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 6.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_11_honey", - "position": 8, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 3.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_12_lemon_zest", - "position": 9, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.16, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_13_orange_zest", - "position": 10, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_14_raisins", - "position": 11, - "ingredient_id": "raisins", - "subrecipe_id": null, - "quantity": 335, - "unit_id": "gram", - "percentage": 53.6, - "basis_member": 0, - "optional": 0, - "notes": "macerated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_15_candied_orange_peel", - "position": 12, - "ingredient_id": "candied_orange_peel", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 9.6, - "basis_member": 0, - "optional": 0, - "notes": "¼-inch dice", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_16_whole_almonds", - "position": 13, - "ingredient_id": "whole_almonds", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 6.4, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_17_whole_pecans", - "position": 14, - "ingredient_id": "whole_pecans", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 6.4, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "dough", - "id": "line_18_whole_walnuts", - "position": 15, - "ingredient_id": "whole_walnuts", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 6.4, - "basis_member": 0, - "optional": 0, - "notes": "toasted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_01_yeast_fresh", - "position": 1, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 6.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 183, - "unit_id": "gram", - "percentage": 29.28, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "sponge", - "id": "line_03_flour_bread", - "position": 3, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 210, - "unit_id": "gram", - "percentage": 33.6, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sponge:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a sponge with the majority of the flour, yeast, and milk. Sprinkle the remaining flour on top of the sponge. Cover and let proof in a warm place for 20 minutes, or until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Dough:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "In a mixer fitted with a paddle attachment, mix the sponge and all of the dough ingredients on low speed for 2 minutes to hydrate.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Continue to mix on medium-low speed until gluten is developed (about 4-5 minutes).", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Place the dough in an oiled bowl and let proof for 20 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Add the fruits and nuts by kneading them in by hand. This procedure will be difficult due to the large quantity of inclusions.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Scale/divide into 3 portions and bulk proof for 20 minutes. Turn/flip/fold over the dough and continue to bulk proof for another 20 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Shaping & Baking:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_10", - "position": 10, - "instruction": "De-gas the dough on a floured surface and pre-shape by patting or rolling into a 4 x 8-inch rectangles; bench rest for 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_11", - "position": 11, - "instruction": "Form the rectangles into loaves by folding the top ⅓ down to the middle. Fold again so that the edges meet and seal the bottom by pressing the seams together. Bench rest for another 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_12", - "position": 12, - "instruction": "Final shape by using a wooden dowel to roll 2 channels into the loaves. There will be 3 bumps and 2 channels in the dough.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_13", - "position": 13, - "instruction": "Lift the top bump up and place it in the channel closest to you. Fold the dough edge backwards to create a loaf that now has 3 ridges, 2 on either side of the 1 in the middle. The middle ridge should be higher than the other two.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_14", - "position": 14, - "instruction": "Final proof the loaves for 30-40 minutes, refrigerating for 10 minutes right before baking which preserves the final shape.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_15", - "position": 15, - "instruction": "Egg wash and bake at 350°F (177°C) for 30-40 minutes, or until the internal temperature is 185°F (85°C). Let cool until warm on wire racks.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_16", - "position": 16, - "instruction": "Finishing:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_17", - "position": 17, - "instruction": "While warm, remove any dark raisins from the exterior and liberally brush with melted butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_18", - "position": 18, - "instruction": "Roll each loaf in a 50/50 mixture of vanilla sugar and powdered sugar.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "strawberry_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Strawberry Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Puree strawberries with a small amount of lemon or lime juice, then strain the puree through a fine-mesh strainer before weighing. It is best to make the puree right before you spin the ice cream to minimize oxidation of both flavor and color.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 155, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_dextrose", - "position": 4, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 53, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_ice_cream_stabilizer", - "position": 6, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_strawberry_puree", - "position": 7, - "ingredient_id": "strawberry_puree", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. Whisk in the milk powder and dextrose by hand, then using an immersion blender, blend the milk powder and dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat until warm, 105°F (40°C); whisk in the sugar mixed with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Blend the puree into the base with an immersion blender until smooth; spin immediately.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "strawberry_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Strawberry Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2265, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 125, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_strawberry_puree", - "position": 4, - "ingredient_id": "strawberry_puree", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "10% sugar", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lemon_juice", - "position": 5, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Warm ⅓ of the puree and melt the bloomed and drained gelatin into it. Whisk that warm mixture back into the rest of the puree and add the juice. Cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold ½ of the puree into the meringue. Fold the other ½ into the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the two mixtures together.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "strawberry_passion_fruit_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Strawberry-Passion Fruit Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_strawberry_puree", - "position": 1, - "ingredient_id": "strawberry_puree", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_passion_fruit_puree", - "position": 2, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 330, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_apricot_puree", - "position": 3, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_banana_puree", - "position": 4, - "ingredient_id": "banana_puree", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_lime_juice", - "position": 5, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_confectioners_sugar", - "position": 6, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, whisk all of the ingredients together and bring to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and reduce until thickened to desired consistency, stirring periodically.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cool the sauce down immediately over an ice bath.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "strawberry_passion_fruit_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Strawberry Passion Fruit Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 408, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dextrose", - "position": 2, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 110, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sorbet_stabilizer", - "position": 4, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_passion_fruit_puree", - "position": 5, - "ingredient_id": "passion_fruit_puree", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_strawberry_puree", - "position": 6, - "ingredient_id": "strawberry_puree", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_apricot_puree", - "position": 7, - "ingredient_id": "apricot_puree", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_bananas_puree", - "position": 8, - "ingredient_id": "bananas_puree", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_lime_juice", - "position": 9, - "ingredient_id": "lime_juice", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, blend in the purees and juice with an immersion blender and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "streusel_topping", - "schema_version": 2, - "save_version": 6, - "title": "Streusel Topping", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1684, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Streusel can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - }, - { - "id": "streusel_variations", - "position": 2, - "name": "Streusel Variations", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_brown_sugar", - "position": 1, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 30.27, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 30.27, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 60.53, - "basis_member": 0, - "optional": 0, - "notes": "cubed & cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_cinnamon", - "position": 4, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 11, - "unit_id": "gram", - "percentage": 1.47, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 1.07, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 0.93, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_bread", - "position": 7, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "streusel_variations", - "id": "line_08_tea_loose", - "position": 1, - "ingredient_id": "tea_loose", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "For Tea Streusel", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "streusel_variations", - "id": "line_09_lemon_zest", - "position": 2, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "each", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": "Zest of whole fruit (for Lemon or Lime Streusel)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "streusel_variations", - "id": "line_10_orange_zest", - "position": 3, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 0.27, - "basis_member": 0, - "optional": 0, - "notes": "Zest of whole fruit (for Orange Streusel)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "streusel_variations", - "id": "line_11_walnut", - "position": 4, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 428, - "unit_id": "gram", - "percentage": 57.07, - "basis_member": 0, - "optional": 0, - "notes": "chopped, not toasted (for Nut Streusel)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix all of the ingredients until desired size of crumb is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Variations:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Mix the streusel variation inclusion along with the rest of the ingredients in the recipe.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "strudel_dough", - "schema_version": 2, - "save_version": 6, - "title": "Strudel Dough", - "summary": "Yield: two large strudels", - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 988, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two large strudels\",\"The dough should be soft and supple. You may need a little more water depending on the type of flour used and the humidity in the air.\",\"Acid like vinegar or lemon juice helps relax the gluten to make the dough easier to stretch.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 66.67, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_bread", - "position": 2, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 33.33, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.42, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_canola_oil", - "position": 4, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": 13.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_water", - "position": 5, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": "110ºF/43ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_white_vinegar", - "position": 6, - "ingredient_id": "white_vinegar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 0.83, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the liquid ingredients to the dry ingredients and mix to develop gluten.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "When the dough comes together enough, switch to a hook attachment and knead until gluten is fully developed.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Lightly coat the dough with oil and place in a lightly oiled bowl.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover with plastic wrap and allow to rest for 30 minutes at room temperature before use.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "subway_italian", "schema_version": 2, @@ -130161,219 +33209,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "sugar_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Sugar Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1150, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe is ideal for holiday cookies and flooding applications.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_baking_powder", - "position": 2, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.54, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_butter", - "position": 4, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whole", - "position": 6, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 22.03, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_milk_whole", - "position": 7, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 13.22, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.54, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Alternately add the dry and wet ingredients, starting and ending with the dry.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Roll to desired thickness and portion with a cookie cutter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 325ºF (163ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "sushi_rice", "schema_version": 2, @@ -130523,244 +33358,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "sweet_corn_ice_cream", - "schema_version": 2, - "save_version": 6, - "title": "Sweet Corn Ice Cream", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 850, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 260, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_powder", - "position": 3, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 65, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_dextrose", - "position": 4, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 205, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sweet_corn", - "position": 5, - "ingredient_id": "sweet_corn", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "shaved, cobs reserved", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_invert_sugar", - "position": 6, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_ice_cream_stabilizer", - "position": 8, - "ingredient_id": "ice_cream_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan large enough to accommodate the entire recipe, combine the milk and cream. With an immersion blender, blend in the milk powder and dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat to 185°F (85°C) along with the corn kernels and cobs. Set aside to infuse for 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Remove the cobs with tongs and then blend with an immersion blender until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the invert sugar and the granulated sugar that has been blended with the stabilizer and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir with a whisk and heat to 185°F (85°C). Strain.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "sweet_hawaiian_rolls", "schema_version": 2, @@ -131013,488 +33610,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "sweet_potato_cake", - "schema_version": 2, - "save_version": 6, - "title": "Sweet Potato Cake", - "summary": "Yield: one half sheet pan", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 2500, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one half sheet pan\",\"This cake can also be baked in cake pans.\",\"It is best to add the vanilla bean seeds to the meringue toward the end of the mixing process.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sweet_potato_puree", - "position": 1, - "ingredient_id": "sweet_potato_puree", - "subrecipe_id": null, - "quantity": 1125, - "unit_id": "gram", - "percentage": 1250, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": 250, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": 150, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 280, - "unit_id": "gram", - "percentage": 311.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": 150, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_all_purpose", - "position": 6, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 90, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 11, - "unit_id": "gram", - "percentage": 12.22, - "basis_member": 0, - "optional": 0, - "notes": "2¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 300, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 270, - "unit_id": "gram", - "percentage": 300, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_vanilla_bean", - "position": 10, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": 2.22, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Cook the sweet potatoes in salted water until tender and drain well.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Pass the sweet potatoes through a food mill, then weigh.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the sweet potato puree, butter, cream, and egg yolks by hand until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk the dry ingredients into the sweet potato mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "In a mixer fitted with a whisk attachment, make a medium-stiff peak French meringue with the egg whites, sugar, and vanilla bean seeds. Fold into the sweet potato mixture.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Liberally sprinkle mixed, untoasted nuts on top of the cake before baking at 350ºF (177ºC).", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "sweet_potato_caramel_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Sweet Potato-Caramel Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_glucose_syrup", - "position": 3, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_heavy_cream", - "position": 4, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "hot", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sweet_potato_puree", - "position": 5, - "ingredient_id": "sweet_potato_puree", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_ginger", - "position": 6, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_cinnamon", - "position": 7, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_chocolate_milk", - "position": 9, - "ingredient_id": "chocolate_milk", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_bourbon", - "position": 10, - "ingredient_id": "bourbon", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make a deep amber caramel with the sugar, water, and glucose.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Deglaze the caramel with the hot cream. Add the puree, spices, and salt.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a saucepan, bring the mixture to a boil while whisking continuously.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Pour the hot mixture over the chocolate. Allow to stand for one minute, then emulsify until smooth. If necessary, place over a water bath not exceeding 93°F (34°C) to melt the chocolate.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the bourbon and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "sweet_potato_hummus", "schema_version": 2, @@ -131993,403 +34108,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "swiss_meringue_buttercream", - "schema_version": 2, - "save_version": 6, - "title": "Swiss Meringue Buttercream", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1808, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 330, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 570, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 908, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a bowl of a mixer, whisk the egg whites and sugar over a water bath until the mixture reaches 140°F (60°C).", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, whisk until the mixture reaches medium-stiff peaks and has cooled until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Begin adding the butter in several additions as it whisks into the meringue.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Raise the speed of the mixer and whisk until the buttercream is light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Flavor as desired.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "swiss_muesli", - "schema_version": 2, - "save_version": 6, - "title": "Swiss Muesli", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Any type of fresh fruit can be substituted for the fresh berries.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 720, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_honey", - "position": 2, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_rolled_oats", - "position": 4, - "ingredient_id": "rolled_oats", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_apple", - "position": 5, - "ingredient_id": "apple", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "peeled & shredded", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_pear", - "position": 6, - "ingredient_id": "pear", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "peeled & shredded", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_golden_raisins", - "position": 7, - "ingredient_id": "golden_raisins", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_dried_cherries", - "position": 8, - "ingredient_id": "dried_cherries", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_dried_apricots", - "position": 9, - "ingredient_id": "dried_apricots", - "subrecipe_id": null, - "quantity": 56, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "diced", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_walnut", - "position": 10, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_blueberries", - "position": 11, - "ingredient_id": "blueberries", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_raspberries", - "position": 12, - "ingredient_id": "raspberries", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "fresh", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_yogurt", - "position": 13, - "ingredient_id": "yogurt", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "plain", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_heavy_cream", - "position": 14, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softly whipped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whisk the milk, honey, and salt to dissolve. Combine with the oats and refrigerate overnight.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fold in the fruits and walnuts, followed by the yogurt and whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "taco_bell_refried_beans", "schema_version": 2, @@ -133117,534 +34835,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "tea_cake", - "schema_version": 2, - "save_version": 6, - "title": "Tea Cake", - "summary": null, - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1570, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This delicious tea cake is ideal for baking in small, individual molds for tea service or as a petits four. The batter can be refrigerated for up to 3 days and baked fresh as needed.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 66.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 378, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_bread", - "position": 3, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 378, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_powder", - "position": 4, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 24, - "unit_id": "gram", - "percentage": 6.35, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.32, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_half_half", - "position": 6, - "ingredient_id": "half_half", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": 64.81, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_vanilla_extract", - "position": 7, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.85, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_butter", - "position": 8, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 283, - "unit_id": "gram", - "percentage": 74.87, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whip the eggs and sugar until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Slowly add the half & half and extract.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Slowly add the butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill before using.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325ºF (163ºC), with fruit on top if desired, until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Brush with the honey glaze on page 86 while still hot from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "tea_infused_chocolate_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Tea Infused Chocolate Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Teas like Masala Chai, Earl Grey, Ceylon, Assam, Darjeeling, Oolong, and Jasmine pair well with with bittersweet chocolate.\",\"The amount of tea used in this recipe is a guideline only; adjust the quantity depending on the kind of tea being used and your taste.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 450, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_tea_loose", - "position": 2, - "ingredient_id": "tea_loose", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 74, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_valrhona_manjari", - "position": 4, - "ingredient_id": "valrhona_manjari", - "subrecipe_id": null, - "quantity": 423, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "64%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 53, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream to a boil. Add the tea and set aside to infuse for approximately 5-10 minutes or until desired strength is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Strain the infused cream through a fine-mesh strainer, then rescale to the original weight.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bring back to a boil with the sugar and pour over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "tequila_lime_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Tequila-Lime Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 715, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 179, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_lime_zest", - "position": 3, - "ingredient_id": "lime_zest", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_tequila", - "position": 5, - "ingredient_id": "tequila", - "subrecipe_id": null, - "quantity": 107, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, zest, and salt to a boil; set aside to infuse for 30 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bring back to a boil and strain over the chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the tequila.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "texas_roadhouse_honey_butter", "schema_version": 2, @@ -133756,380 +34946,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "tiramisu_cream", - "schema_version": 2, - "save_version": 6, - "title": "Tiramisu Cream", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1200, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 325, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_gelatin_sheet", - "position": 2, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_light_corn_syrup", - "position": 7, - "ingredient_id": "light_corn_syrup", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_mascarpone", - "position": 8, - "ingredient_id": "mascarpone", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_amaretto_or_marsala_wine", - "position": 9, - "ingredient_id": "amaretto_or_marsala_wine", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a pâte a bombe with the egg yolks, sugar, salt, and corn syrup.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the mascarpone to the warm pâte a bombe and whisk until smooth; do not over mix.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin with the amaretto or marsala wine and combine with the pâte a bombe.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold in the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "toffee_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Toffee Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_heavy_cream", - "position": 1, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 510, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_butter", - "position": 3, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_dark_rum_or_bourbon", - "position": 6, - "ingredient_id": "dark_rum_or_bourbon", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a saucepan, bring the cream, sugar, butter, water, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Lower to a simmer and reduce until thickened to desired consistency, stirring periodically.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Cool the sauce down immediately over an ice bath and stir in the rum or bourbon.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "top_pot_chocolate_icing", "schema_version": 2, @@ -134479,572 +35295,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "tres_leches_flan", - "schema_version": 2, - "save_version": 6, - "title": "Tres Leches Flan", - "summary": "Yield: one 6-inch cake pan or one 9-inch loaf pan", - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 970, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one 6-inch cake pan or one 9-inch loaf pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_evaporated_milk", - "position": 1, - "ingredient_id": "evaporated_milk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_milk_whole", - "position": 2, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 130, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_cinnamon_stick", - "position": 3, - "ingredient_id": "cinnamon_stick", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_star_anise", - "position": 4, - "ingredient_id": "star_anise", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_zest", - "position": 6, - "ingredient_id": "zest", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "lemon, lime, orange (¼ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_condensed_milk", - "position": 7, - "ingredient_id": "condensed_milk", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whole", - "position": 8, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_yolk", - "position": 9, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_salt", - "position": 10, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Coat the bottom of a 6-inch cake pan with a ⅛-inch layer of caramel slackened with a touch of warm water and set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, combine the evaporated milk, whole milk, cinnamon stick, star anise, vanilla bean, and citrus zest. Bring to a boil and set aside to steep until cool.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the condensed milk to the evaporated milk mixture. Warm the mixture while stirring to blend.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wisk together the whole eggs, yolks and salt and temper with the warmed milk mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer and set aside to cool.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Pour the custard over the caramelized sugar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 275°F (135°C) in a water bath, covered, until the custard trembles slightly when shaken.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "triple_chocolate_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Triple Chocolate Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1560, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_milk_whole", - "position": 1, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 885, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_yolk", - "position": 4, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Custard Base:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the milk, cream, and ½ of the sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk the egg yolks, the other ½ of the sugar, and salt until light and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the milk mixture comes to a scald, temper ⅓ the hot milk into the egg yolk mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Combine the yolk mixture with the rest of the hot milk in the saucepan and cook on mediumlow heat, stirring continuously until the mixture coats the back of a spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain the crème anglaise through a fine-mesh strainer. Cool down immediately if using at a later time, or keep warm if using right way.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "triple_chocolate_mousse_p244", - "schema_version": 2, - "save_version": 6, - "title": "Triple Chocolate Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1236, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_custard_base", - "position": 1, - "ingredient_id": "custard_base", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_gelatin_sheet", - "position": 2, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_dark", - "position": 4, - "ingredient_id": "chocolate_dark", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "58-72%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_heavy_cream", - "position": 5, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Custard Base:", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the milk, cream, and ½ of the sugar to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Meanwhile, whisk the egg yolks, the other ½ of the sugar, and salt until light and smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the milk mixture comes to a scald, temper ⅓ the hot milk into the egg yolk mixture.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Combine the yolk mixture with the rest of the hot milk in the saucepan and cook on mediumlow heat, stirring continuously until the mixture coats the back of a spoon.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Strain the crème anglaise through a fine-mesh strainer. Cool down immediately if using at a later time, or keep warm if using right way.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "turkish_herb_sauce", "schema_version": 2, @@ -135435,2258 +35685,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "valrhona_azelia_praline_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Valrhona Azélia-Praliné Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_valrhona_az_lia", - "position": 1, - "ingredient_id": "valrhona_az_lia", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "35%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_valrhona_hazelnut_pralin", - "position": 2, - "ingredient_id": "valrhona_hazelnut_pralin", - "subrecipe_id": null, - "quantity": 290, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "60%", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_honey", - "position": 4, - "ingredient_id": "honey", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_invert_sugar", - "position": 5, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 28, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the chocolate and praline in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, honey, sugar, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Pour the hot cream over the chocolate and praline. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Azélia is the perfect harmony between chocolate, milk, and hazelnuts. Valrhona 60% Hazelnut Praliné paste is delicately sweet with notes of soft caramel.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "valrhona_chocolate_chunk_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Valrhona Chocolate Chunk Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1484, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 205, - "unit_id": "gram", - "percentage": 45.15, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 155, - "unit_id": "gram", - "percentage": 34.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_brown_sugar", - "position": 3, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 155, - "unit_id": "gram", - "percentage": 34.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 34, - "unit_id": "gram", - "percentage": 7.49, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_whole", - "position": 5, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 22.03, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_extract", - "position": 6, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.2, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_malt_powder", - "position": 8, - "ingredient_id": "malt_powder", - "subrecipe_id": null, - "quantity": 11, - "unit_id": "gram", - "percentage": 2.42, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_soda", - "position": 10, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.1, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_valrhona_guanaja", - "position": 11, - "ingredient_id": "valrhona_guanaja", - "subrecipe_id": null, - "quantity": 295, - "unit_id": "gram", - "percentage": 64.98, - "basis_member": 0, - "optional": 0, - "notes": "70%, ¼-inch chunks", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_valrhona_dark_chocolate_baking_pearls", - "position": 12, - "ingredient_id": "valrhona_dark_chocolate_baking_pearls", - "subrecipe_id": null, - "quantity": 55, - "unit_id": "gram", - "percentage": 12.11, - "basis_member": 0, - "optional": 0, - "notes": "55%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the eggs, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and mix until streaky.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the chocolate chunks and pearls and mix until combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 300°F (149°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "valrhona_guanaja_chocolate_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Valrhona Guanaja Chocolate Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This recipe highlights the beauty and sophistication of Valrhona's iconic Guanaja 70% chocolate.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 840, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_powdered_glucose", - "position": 3, - "ingredient_id": "powdered_glucose", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sorbet_stabilizer", - "position": 4, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_valrhona_guanaja", - "position": 6, - "ingredient_id": "valrhona_guanaja", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "70%", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the water in a saucepan large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Heat the water until warm, 105°F (40°C); add the blended sugar, glucose, stabilizer, and salt.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "When the temperature reaches 185°F (85°C), blend in the chocolate with an immersion blender until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_bourbon_caramel_sauce", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla Bourbon Caramel Sauce", - "summary": null, - "categories_json": "[\"sauces_liquids\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sauces_liquids\",\"classic\"]", - "yield_quantity": 1160, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"This sauce is wonderful served over ice cream, cakes, and fresh or cooked fruit. Use at room temperature or warm.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 690, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 395, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_bourbon", - "position": 6, - "ingredient_id": "bourbon", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Make an amber caramel with the sugar and water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Meanwhile, bring the cream, vanilla bean, and salt to a scald.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Deglaze the caramel with the hot vanilla cream and whisk until emulsified.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Whisk in the bourbon.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain the caramel sauce through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_chiboust", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla Chiboust", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1640, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 480, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_egg_yolk", - "position": 5, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 240, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cornstarch", - "position": 6, - "ingredient_id": "cornstarch", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_brown_sugar", - "position": 7, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 0.6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "⅛ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 380, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_water", - "position": 10, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 140, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_egg_whites", - "position": 11, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Make a pastry cream with the milk, vanilla bean, egg yolks, cornstarch, brown sugar, and salt. Whisk the bloomed and drained gelatin into the hot pastry cream and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Place the finished pastry cream in a bowl large enough to accommodate the entire recipe. Press plastic wrap on the surface to prevent a skin from forming and set aside to cool until warm. Alternatively, in a mixer fitted with a paddle attachment, mix the hot pastry cream until warm.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare an Italian meringue with the granulated sugar, water, and egg whites. Whip until warm, about 120°F (49ºC).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Sacrifice ¼ of the warm meringue into the warm pastry cream and whisk until the smooth. Fold the rest of the meringue into the lightened pastry cream until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use immediately; chill or freeze until set.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_crescents", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla Crescents", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 78.55, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 165, - "unit_id": "gram", - "percentage": 28.55, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_vanilla_bean", - "position": 3, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "each", - "percentage": 1.04, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_almond_flour", - "position": 4, - "ingredient_id": "almond_flour", - "subrecipe_id": null, - "quantity": 206, - "unit_id": "gram", - "percentage": 35.64, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 578, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.43, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter, sugar, vanilla bean seeds, and almond flour.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients and mix just until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Chill before shaping.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350°F (177°C) until the edges are browned.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Toss the cookies in vanilla sugar while still warm from the oven.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_panna_cotta", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla Panna Cotta", - "summary": null, - "categories_json": "[\"custards_creams\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"custards_creams\",\"classic\"]", - "yield_quantity": 1455, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 1000, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_milk_whole", - "position": 4, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 115, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_vanilla_bean", - "position": 6, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped (½ tsp)", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, milk, sugar, and vanilla beans to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Off the heat, add the bloomed and drained gelatin to the mixture and gently whisk to minimize air bubbles.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Stir over an ice bath until slightly thickened and pour into desired molds.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_rum_bonbon_ganache", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla-Rum Bonbon Ganache", - "summary": null, - "categories_json": "[\"confections\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"confections\",\"classic\"]", - "yield_quantity": 1000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_chocolate_white", - "position": 1, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 596, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_heavy_cream", - "position": 2, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 265, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 53, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_bean", - "position": 4, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "split & scraped", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 66, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_dark_rum", - "position": 6, - "ingredient_id": "dark_rum", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Melt the chocolate in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, bring the cream, sugar, and vanilla beans to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Strain the hot mixture over the melted chocolate. Allow to stand for one minute, then emulsify until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir in the softened butter, followed by the rum.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Cover the surface of the ganache with plastic wrap. Allow to rest at room temperature until it reaches 78°F (26°C). The cooled ganache should have a thick, yet fluid consistency to properly fill bonbon shells.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1540, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - }, - { - "id": "chocolate_variation", - "position": 2, - "name": "Chocolate Variation", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "chocolate_variation", - "id": "line_11_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 145, - "unit_id": "gram", - "percentage": 44.62, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "chocolate_variation", - "id": "line_12_cocoa_powder", - "position": 2, - "ingredient_id": "cocoa_powder", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": 10.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_01_egg_whole", - "position": 1, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 400, - "unit_id": "gram", - "percentage": 123.08, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_egg_yolk", - "position": 2, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 61.54, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 110.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_invert_sugar", - "position": 4, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 56, - "unit_id": "gram", - "percentage": 17.23, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.54, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_flour_cake", - "position": 6, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 55.38, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 0.77, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_whites", - "position": 8, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 92.31, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_sugar", - "position": 9, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 35, - "unit_id": "gram", - "percentage": 10.77, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_cream_of_tartar", - "position": 10, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.92, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the whole eggs, yolks, sugars, and extract until a thick ribbon is achieved.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Fold the sifted dry ingredients into the egg foam.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a medium peak French meringue with the egg whites, sugar, and cream of tartar. Fold the meringue into the egg foam until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vanilla_tuiles", - "schema_version": 2, - "save_version": 6, - "title": "Vanilla Tuiles", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1574, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_egg_whites", - "position": 1, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 151.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_confectioners_sugar", - "position": 2, - "ingredient_id": "confectioners_sugar", - "subrecipe_id": null, - "quantity": 370, - "unit_id": "gram", - "percentage": 123.33, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.42, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_all_purpose", - "position": 4, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_bean", - "position": 5, - "ingredient_id": "vanilla_bean", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.33, - "basis_member": 0, - "optional": 0, - "notes": "seeds", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": 151.33, - "basis_member": 0, - "optional": 0, - "notes": "melted", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Combine the egg whites, sugar, and salt in a bowl of a mixer. Whisk over a flame or water bath until warm, 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "thermometer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a whisk attachment, add the sifted flour and vanilla bean seeds to the egg white mixture. Whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gradually whisk in the warm butter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill before use.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Using a template, spread thinly on a silicone baking mat.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Shape as desired and store in airtight containers.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "vegan_tofu_muffins", - "schema_version": 2, - "save_version": 6, - "title": "Vegan Tofu Muffins", - "summary": null, - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1585, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 31.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_apple_juice", - "position": 2, - "ingredient_id": "apple_juice", - "subrecipe_id": null, - "quantity": 170, - "unit_id": "gram", - "percentage": 31.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_soft_tofu", - "position": 3, - "ingredient_id": "soft_tofu", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 37.38, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_vanilla_extract", - "position": 4, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.87, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_canola_oil", - "position": 5, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 25, - "unit_id": "gram", - "percentage": 4.67, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_apple_compote", - "position": 6, - "ingredient_id": "apple_compote", - "subrecipe_id": null, - "quantity": 38, - "unit_id": "gram", - "percentage": 7.1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_sugar", - "position": 7, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 413, - "unit_id": "gram", - "percentage": 77.2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_cake", - "position": 8, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 385, - "unit_id": "gram", - "percentage": 71.96, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_flour_bread", - "position": 9, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 28.04, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_powder", - "position": 10, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.87, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_baking_soda", - "position": 11, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.31, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cinnamon", - "position": 12, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 4, - "unit_id": "gram", - "percentage": 0.75, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_salt", - "position": 13, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.56, - "basis_member": 0, - "optional": 0, - "notes": "¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix the wet ingredients until semi-smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients to the wet ingredients all at once. Mix just until combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Bake at 350°F (177°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "waffles", "schema_version": 2, @@ -137902,888 +35900,6 @@ "measure_conversions": [], "media": [] }, - { - "id": "walnut_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Walnut Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1353, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 246.74, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 346, - "unit_id": "gram", - "percentage": 376.09, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 326.09, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 92, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_baking_powder", - "position": 5, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 7.61, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 5.43, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_rum", - "position": 7, - "ingredient_id": "rum", - "subrecipe_id": null, - "quantity": 30, - "unit_id": "gram", - "percentage": 32.61, - "basis_member": 0, - "optional": 0, - "notes": "dark", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_walnut", - "position": 8, - "ingredient_id": "walnut", - "subrecipe_id": null, - "quantity": 346, - "unit_id": "gram", - "percentage": 376.09, - "basis_member": 0, - "optional": 0, - "notes": "finely chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients, followed by the rum and chopped walnuts.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Bake at 325ºF (163ºC) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "watermelon_sorbet", - "schema_version": 2, - "save_version": 6, - "title": "Watermelon Sorbet", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 1500, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_watermelon_puree", - "position": 1, - "ingredient_id": "watermelon_puree", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_dextrose", - "position": 2, - "ingredient_id": "dextrose", - "subrecipe_id": null, - "quantity": 225, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 113, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sorbet_stabilizer", - "position": 4, - "ingredient_id": "sorbet_stabilizer", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1¼ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_watermelon_puree", - "position": 5, - "ingredient_id": "watermelon_puree", - "subrecipe_id": null, - "quantity": 575, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_lemon_juice", - "position": 6, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 75, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_grenadine", - "position": 7, - "ingredient_id": "grenadine", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Place the first weight of watermelon puree in a saucepan large enough to accommodate the entire recipe. With an immersion blender, blend in the dextrose to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "kitchen_scale", - "saucepan" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Combine the sugar with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Heat the mixture until warm, 105°F (40°C); whisk in the sugar that has been blended with the stabilizer.", - "critical_control_point": 0, - "equipment_ids": [ - "blender", - "thermometer", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Stir with a whisk and heat to 185°F (85°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer", - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Chill immediately. Once cool, whisk in the second weight of puree, juice, and grenadine and allow to mature for 6 to 12 hours.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale", - "whisk" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Blend with an immersion blender before spinning.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "wedding_chiffon_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "Wedding Chiffon Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 2015, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 285, - "unit_id": "gram", - "percentage": 67.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.18, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 4.71, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_cake", - "position": 4, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 425, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_canola_oil", - "position": 5, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 47.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 200, - "unit_id": "gram", - "percentage": 47.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 235, - "unit_id": "gram", - "percentage": 55.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.65, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_almond_extract", - "position": 9, - "ingredient_id": "almond_extract", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": 0.71, - "basis_member": 0, - "optional": 0, - "notes": "½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_egg_whites", - "position": 10, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 395, - "unit_id": "gram", - "percentage": 92.94, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_sugar", - "position": 11, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 235, - "unit_id": "gram", - "percentage": 55.29, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cream_of_tartar", - "position": 12, - "ingredient_id": "cream_of_tartar", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.18, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and place in a bowl large enough to accommodate the entire recipe.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whisk the oil, egg yolks, water, and extracts until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Whisk the wet ingredients into the sifted dry ingredients and thoroughly mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Prepare a stiff peak French meringue with the egg whites, sugar, and cream of tartar.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the meringue into the batter just until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "wet_nut_topping", - "schema_version": 2, - "save_version": 6, - "title": "Wet Nut Topping", - "summary": null, - "categories_json": "[\"frozen_desserts\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frozen_desserts\",\"classic\"]", - "yield_quantity": 2000, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Any nut can be used, however walnuts and pecans would be traditional.\",\"You can simmer the syrup more or less to customize the viscosity to taste.\",\"Wet nuts can be stored for several weeks in the refrigerator.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_nuts", - "position": 1, - "ingredient_id": "nuts", - "subrecipe_id": null, - "quantity": 705, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_maple_syrup", - "position": 2, - "ingredient_id": "maple_syrup", - "subrecipe_id": null, - "quantity": 800, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_sugar", - "position": 3, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_water", - "position": 4, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 234, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_cinnamon", - "position": 6, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 3, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_ginger", - "position": 7, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_bourbon", - "position": 8, - "ingredient_id": "bourbon", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_lemon_juice", - "position": 9, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_vanilla_extract", - "position": 10, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Toast the nuts. Allow to cool, then coarsely chop.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan, combine the syrup, sugar, water, salt, and spices. Bring to a boil, then lower to a simmer for 2 minutes.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the nuts, bring back to a boil, then lower to a simmer for 2-3 minutes, or until desired consistency is reached.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Chill over an ice bath and stir in the bourbon, juice, and extract.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, { "id": "whipped_cream", "schema_version": 2, @@ -138997,2890 +36113,6 @@ ], "measure_conversions": [], "media": [] - }, - { - "id": "white_chocolate_cream_cheese_frosting", - "schema_version": 2, - "save_version": 6, - "title": "White Chocolate Cream Cheese Frosting", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1550, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Lemon juice and vanilla extract can be added to taste.\",\"If the frosting is too soft, refrigerate for a little while to firm, then mix with a paddle attachment until smooth.\",\"This recipe is especially great for carrot or red velvet cake.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_cream_cheese", - "position": 1, - "ingredient_id": "cream_cheese", - "subrecipe_id": null, - "quantity": 680, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_butter", - "position": 2, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 340, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_chocolate_white", - "position": 3, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "melted & cooled", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_lemon_juice", - "position": 4, - "ingredient_id": "lemon_juice", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the cream cheese and butter until light, fluffy, and smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the melted chocolate and mix until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the juice and extract.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "white_chocolate_glaze", - "schema_version": 2, - "save_version": 6, - "title": "White Chocolate Glaze", - "summary": null, - "categories_json": "[\"frostings_glazes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"frostings_glazes\",\"classic\"]", - "yield_quantity": 1980, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_milk_whole", - "position": 3, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_glucose_syrup", - "position": 4, - "ingredient_id": "glucose_syrup", - "subrecipe_id": null, - "quantity": 160, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_salt", - "position": 5, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_chocolate_white", - "position": 6, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_white_chocolate_p_te_glacer", - "position": 7, - "ingredient_id": "white_chocolate_p_te_glacer", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a saucepan large enough to accommodate the entire recipe, bring the milk, glucose, and salt to a boil.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Off the heat, add the chocolates, followed by the bloomed and drained gelatin.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Blend the glaze with an immersion blender until homogenous.", - "critical_control_point": 0, - "equipment_ids": [ - "blender" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain through a fine-mesh strainer.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Use at about 84°F (29°C).", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "white_chocolate_mousse", - "schema_version": 2, - "save_version": 6, - "title": "White Chocolate Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1550, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 750, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_white", - "position": 4, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 454, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_water", - "position": 6, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whole", - "position": 7, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_egg_yolk", - "position": 8, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_salt", - "position": 9, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Melt the chocolate and keep warm.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Make a pâte à bombe with the sugar, water, whole eggs, yolks, and salt; whip until 110°F (43°C).", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "thermometer" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Melt the bloomed and drained gelatin and add it to the slightly warm pâte à bombe; whip until well combined.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the warm melted chocolate into the pâte à bombe, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "white_chocolate_sheet_cake", - "schema_version": 2, - "save_version": 6, - "title": "White Chocolate Sheet Cake", - "summary": "Yield: one full sheet pan", - "categories_json": "[\"sheet_cakes\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"sheet_cakes\",\"classic\"]", - "yield_quantity": 1250, - "yield_unit_id": "gram", - "yield_servings": 1, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: one full sheet pan\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_butter", - "position": 1, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 213, - "unit_id": "gram", - "percentage": 208.82, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_sugar", - "position": 2, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 358, - "unit_id": "gram", - "percentage": 350.98, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_egg_whole", - "position": 3, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 343.14, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_chocolate_white", - "position": 4, - "ingredient_id": "chocolate_white", - "subrecipe_id": null, - "quantity": 224, - "unit_id": "gram", - "percentage": 219.61, - "basis_member": 0, - "optional": 0, - "notes": "melted & warm", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_flour_all_purpose", - "position": 5, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 102, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_salt", - "position": 6, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 2.5, - "unit_id": "gram", - "percentage": 2.45, - "basis_member": 0, - "optional": 0, - "notes": "½ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugar.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the chocolate and mix to combine.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Bake at 350°F (177°C) until the cake springs back to the touch.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "white_cupcakes", - "schema_version": 2, - "save_version": 6, - "title": "White Cupcakes", - "summary": "Yield: twenty-eight 3 oz cupcakes", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1436, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: twenty-eight 3 oz cupcakes\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 313, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_baking_powder", - "position": 2, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 15, - "unit_id": "gram", - "percentage": 4.79, - "basis_member": 0, - "optional": 0, - "notes": "1 T", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_salt", - "position": 3, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.6, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_sugar", - "position": 4, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 369, - "unit_id": "gram", - "percentage": 117.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 313, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_whites", - "position": 6, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 47.92, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_milk_whole", - "position": 7, - "ingredient_id": "milk_whole", - "subrecipe_id": null, - "quantity": 268, - "unit_id": "gram", - "percentage": 85.62, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_vanilla_extract", - "position": 8, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 8, - "unit_id": "gram", - "percentage": 2.56, - "basis_member": 0, - "optional": 0, - "notes": "1¾ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and place in a mixing bowl.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, add the butter and mix until the texture resembles course sand.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Combine the egg whites, milk, and extract.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add ½ of the liquid into the dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Mix on medium-low speed for about 1½ minutes, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Add the remaining liquid. Mix for 30 seconds, scraping down the bowl again, then mixing for an additional 30 seconds.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350ºF (177ºC) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "whole_wheat_bagels", - "schema_version": 2, - "save_version": 6, - "title": "Whole Wheat Bagels", - "summary": "Yield: thirteen 120 g (4.2 oz) bagels", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1648, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: thirteen 120 g (4.2 oz) bagels\",\"The toppings will stick better if you brush the top of each bagel with an egg white wash made by whisking 1 egg white with 1 tablespoon of water.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_bread", - "position": 1, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 700, - "unit_id": "gram", - "percentage": 70, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_whole_wheat", - "position": 2, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": 30, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_water", - "position": 3, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 550, - "unit_id": "gram", - "percentage": 55, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_yeast_fresh", - "position": 4, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_malt_powder", - "position": 5, - "ingredient_id": "malt_powder", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_salt", - "position": 7, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a hook attachment, combine all of the ingredients and mix on low speed until a dough forms.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Increase the speed to medium and mix until gluten is developed and a \"window\" is achieved.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Shape the dough into a ball and place in an oiled bowl. Cover and bulk ferment for 1 hour.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Divide the dough into 120 g (4.2 oz) pieces.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Pre-shape, then cover and bench rest for 15 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Final shape, then refrigerate for at least 1 hour, or up to 24 hours.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Boil the bagels for 30 seconds on each side in malted water then press into desired toppings before baking.", - "critical_control_point": 0, - "equipment_ids": [ - "saucepan" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Bake at 450°F (232°C) until golden brown (about 12-18 minutes).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "whole_wheat_chocolate_chip_cookies", - "schema_version": 2, - "save_version": 6, - "title": "Whole Wheat Chocolate Chip Cookies", - "summary": null, - "categories_json": "[\"cookies_tuiles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cookies_tuiles\",\"classic\"]", - "yield_quantity": 1365, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_whole_wheat", - "position": 1, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 360, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_baking_powder", - "position": 2, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.94, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_soda", - "position": 3, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.39, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 7, - "unit_id": "gram", - "percentage": 1.94, - "basis_member": 0, - "optional": 0, - "notes": "1½ t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 63.89, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 50, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_brown_sugar", - "position": 7, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 220, - "unit_id": "gram", - "percentage": 61.11, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_invert_sugar", - "position": 8, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 20, - "unit_id": "gram", - "percentage": 5.56, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 27.78, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_vanilla_extract", - "position": 10, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.78, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_chocolate_chips", - "position": 11, - "ingredient_id": "chocolate_chips", - "subrecipe_id": null, - "quantity": 227, - "unit_id": "gram", - "percentage": 63.06, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients and set aside. Pour any bits of grain that may remain in the sifter back into the rest of the sifted dry ingredients.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, cream the butter and sugars.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Gradually add the eggs, followed by the extract, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Add the sifted dry ingredients and mix until barely combined.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Add the chocolate chips and mix until evenly combined, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 300°F (149°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "whole_wheat_pate_brisee", - "schema_version": 2, - "save_version": 8, - "title": "Whole Wheat Pâte Brisée", - "summary": null, - "categories_json": "[\"doughs\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"doughs\",\"classic\"]", - "yield_quantity": 1015, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"To inhibit gluten development, keep all ingredients and mixing bowl as cold as possible.\",\"The exact amount of hydration needed can vary depending upon the humidity in the air and the type of flour used.\",\"The dough can be refrigerated for 3 days or frozen up to 2 months.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_cake", - "position": 1, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 203, - "unit_id": "gram", - "percentage": 38.01, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_flour_all_purpose", - "position": 2, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 203, - "unit_id": "gram", - "percentage": 38.01, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_whole_wheat", - "position": 3, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 128, - "unit_id": "gram", - "percentage": 23.97, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_salt", - "position": 4, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.87, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 1.87, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_butter", - "position": 6, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 268, - "unit_id": "gram", - "percentage": 50.19, - "basis_member": 0, - "optional": 0, - "notes": "½-inch cubes, cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_water", - "position": 7, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 193, - "unit_id": "gram", - "percentage": 36.14, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a paddle attachment, mix together the dry ingredients and butter until the butter is ¼-inch, or \"pea sized.\"", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the water and mix until the dough is shaggy, but holds together when pressed between two fingers.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Turn the dough out on to a lightly floured work surface. Gently shape into desired sized rounds.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Wrap the dough in plastic wrap and refrigerate for a minimum of 1 hour, preferably overnight.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "winemakers_grape_cake", - "schema_version": 2, - "save_version": 6, - "title": "Winemakers' Grape Cake", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"cakes_souffles\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"cakes_souffles\",\"classic\"]", - "yield_quantity": 1345, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\",\"Dessert wines like Beaumes de Venise, Sauternes, sweet Riesling, Vin Santo, and Muscat work well with this recipe.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_flour_all_purpose", - "position": 1, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_salt", - "position": 2, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_baking_powder", - "position": 3, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_baking_soda", - "position": 4, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 1.25, - "unit_id": "gram", - "percentage": 0.5, - "basis_member": 0, - "optional": 0, - "notes": "¼ tsp", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_butter", - "position": 5, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": "softened", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_sugar", - "position": 6, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 230, - "unit_id": "gram", - "percentage": 92, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_lemon_zest", - "position": 7, - "ingredient_id": "lemon_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_orange_zest", - "position": 8, - "ingredient_id": "orange_zest", - "subrecipe_id": null, - "quantity": 1, - "unit_id": "each", - "percentage": 0.4, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_egg_whole", - "position": 9, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 100, - "unit_id": "gram", - "percentage": 40, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_white_dessert_wine", - "position": 10, - "ingredient_id": "white_dessert_wine", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 100, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_olive_oil", - "position": 11, - "ingredient_id": "olive_oil", - "subrecipe_id": null, - "quantity": 50, - "unit_id": "gram", - "percentage": 20, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_vanilla_extract", - "position": 12, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 2, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_seedless_grapes", - "position": 13, - "ingredient_id": "seedless_grapes", - "subrecipe_id": null, - "quantity": 350, - "unit_id": "gram", - "percentage": 140, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Sift the dry ingredients. Toss the grapes with a little of the sifted dry ingredient mixture to coat; set aside.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "In a mixer fitted with a paddle attachment, mix the butter, sugar, and zests until light and fluffy.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the eggs one at a time, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Combine the liquid ingredients. Alternately mix the dry and wet ingredients into the creamed butter mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Distribute the batter into prepared loaf pans.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Sprinkle the grapes over the batter.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Bake at 350ºF (177ºC) until the top of the cakes are set.", - "critical_control_point": 0, - "equipment_ids": [ - "oven" - ] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Dot the top of the cakes with a little additional butter and granulated or vanilla sugar. Continue baking until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "yeast_doughnuts", - "schema_version": 2, - "save_version": 6, - "title": "Yeast Doughnuts", - "summary": "Yield: forty 60 g (2 oz) doughnuts", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 2733, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: forty 60 g (2 oz) doughnuts\",\"Using yeast and baking powder together yields an exceptionally light and fluffy doughnut.\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_water", - "position": 1, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 865, - "unit_id": "gram", - "percentage": 63.6, - "basis_member": 0, - "optional": 0, - "notes": "100ºF/38ºC", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_yeast_fresh", - "position": 2, - "ingredient_id": "yeast_fresh", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 2.94, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_flour_bread", - "position": 3, - "ingredient_id": "flour_bread", - "subrecipe_id": null, - "quantity": 860, - "unit_id": "gram", - "percentage": 63.24, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_flour_pastry", - "position": 4, - "ingredient_id": "flour_pastry", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": 36.76, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 6.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_milk_powder", - "position": 6, - "ingredient_id": "milk_powder", - "subrecipe_id": null, - "quantity": 85, - "unit_id": "gram", - "percentage": 6.25, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_baking_powder", - "position": 7, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 23, - "unit_id": "gram", - "percentage": 1.69, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_salt", - "position": 8, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 23, - "unit_id": "gram", - "percentage": 1.69, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_cardamom", - "position": 9, - "ingredient_id": "cardamom", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.15, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_butter", - "position": 10, - "ingredient_id": "butter", - "subrecipe_id": null, - "quantity": 250, - "unit_id": "gram", - "percentage": 18.38, - "basis_member": 0, - "optional": 0, - "notes": "cold & cubed", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a hook attachment, mix the water and yeast for 30 seconds.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Add the sifted dry ingredients and mix until fully incorporated.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the butter and mix on low speed for 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Increase the speed to medium-low and mix for another 5 minutes.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Place the dough in an oiled bowl and bulk proof until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "De-gas the dough and roll or sheet to ½-inch thick.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_7", - "position": 7, - "instruction": "Cut into the doughnuts using a doughnut cutter or use two sizes of round cutters to create the hole.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_8", - "position": 8, - "instruction": "Proof the doughnuts until doubled in size.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_9", - "position": 9, - "instruction": "Add enough oil to a deep-sided pan to measure the depth of about 3-inches. Over medium heat, bring the temperature of the oil to 375°F (191°C).", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - }, - { - "id": "step_10", - "position": 10, - "instruction": "Carefully add a few doughnuts to the oil, being careful not to crowd the pan. Fry until golden brown. Turn the doughnuts over and fry until the other side is golden. Drain on paper towels.", - "critical_control_point": 0, - "equipment_ids": [] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "yogurt_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Yogurt Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 1400, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 16, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 80, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 300, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_whole_fat_yogurt", - "position": 4, - "ingredient_id": "whole_fat_yogurt", - "subrecipe_id": null, - "quantity": 315, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_cr_me_fra_che", - "position": 5, - "ingredient_id": "cr_me_fra_che", - "subrecipe_id": null, - "quantity": 315, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_limes", - "position": 6, - "ingredient_id": "limes", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "each", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "juice & zest", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_egg_whites", - "position": 7, - "ingredient_id": "egg_whites", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_sugar", - "position": 8, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 195, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "In a large bowl, whisk together the yogurt, crème fraîche, juice, and zest until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Melt the bloomed and drained gelatin and whisk into the yogurt mixture until smooth.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Make an Italian meringue with the sugar and egg whites; whip until tepid.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the meringue into the yogurt mixture, followed by the whipped cream.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "yuzu_mousse", - "schema_version": 2, - "save_version": 6, - "title": "Yuzu Mousse", - "summary": null, - "categories_json": "[\"mousses_bavarians\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"mousses_bavarians\",\"classic\"]", - "yield_quantity": 2124, - "yield_unit_id": "gram", - "yield_servings": null, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_gelatin_sheet", - "position": 1, - "ingredient_id": "gelatin_sheet", - "subrecipe_id": null, - "quantity": 14, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_water", - "position": 2, - "ingredient_id": "water", - "subrecipe_id": null, - "quantity": 70, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": "cold", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_heavy_cream", - "position": 3, - "ingredient_id": "heavy_cream", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_yuzu_juice", - "position": 4, - "ingredient_id": "yuzu_juice", - "subrecipe_id": null, - "quantity": 600, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_sugar", - "position": 5, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 500, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_egg_yolk", - "position": 6, - "ingredient_id": "egg_yolk", - "subrecipe_id": null, - "quantity": 440, - "unit_id": "gram", - "percentage": null, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "Bloom the gelatin in cold water; the gelatin will absorb the majority of the water.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Whip the cream to soft peaks and set aside.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Make a crème anglaise with the juice, sugar, and egg yolks.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Once cooked, remove from heat, add the bloomed and drained gelatin, and whisk to dissolve.", - "critical_control_point": 0, - "equipment_ids": [ - "whisk" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Strain the mixture through a fine-mesh strainer and cool to about 65°F (18°C), or until slightly thickened.", - "critical_control_point": 0, - "equipment_ids": [ - "thermometer" - ] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Fold the whipped cream into the cooled yuzu crème anglaise.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer" - ] - } - ], - "measure_conversions": [], - "media": [] - }, - { - "id": "zucchini_bread", - "schema_version": 2, - "save_version": 6, - "title": "Zucchini Bread", - "summary": "Yield: two 9-inch loaf pans", - "categories_json": "[\"breakfast\"]", - "tags_json": "[\"pastry_chefs_little_black_book\",\"breakfast\",\"classic\"]", - "yield_quantity": 1670, - "yield_unit_id": "gram", - "yield_servings": 2, - "yield_basis": "theoretical", - "scaling_mode": null, - "scaling_basis_id": null, - "scaling_basis_quantity": null, - "scaling_basis_unit_id": null, - "notes_json": "[\"Yield: two 9-inch loaf pans\"]", - "source_json": "{}", - "auto_yield": 0, - "station": null, - "deleted_at": null, - "cover_media_url": null, - "equipment_ids": [], - "components": [ - { - "id": "main", - "position": 1, - "name": "Main", - "notes_json": "[]" - } - ], - "items": [ - { - "component_id": "main", - "id": "line_01_sugar", - "position": 1, - "ingredient_id": "sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 45.45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_02_brown_sugar", - "position": 2, - "ingredient_id": "brown_sugar", - "subrecipe_id": null, - "quantity": 180, - "unit_id": "gram", - "percentage": 45.45, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_03_invert_sugar", - "position": 3, - "ingredient_id": "invert_sugar", - "subrecipe_id": null, - "quantity": 40, - "unit_id": "gram", - "percentage": 10.1, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_04_egg_whole", - "position": 4, - "ingredient_id": "egg_whole", - "subrecipe_id": null, - "quantity": 150, - "unit_id": "gram", - "percentage": 37.88, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_05_vanilla_extract", - "position": 5, - "ingredient_id": "vanilla_extract", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.53, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_06_canola_oil", - "position": 6, - "ingredient_id": "canola_oil", - "subrecipe_id": null, - "quantity": 245, - "unit_id": "gram", - "percentage": 61.87, - "basis_member": 0, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_07_flour_all_purpose", - "position": 7, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 138, - "unit_id": "gram", - "percentage": 34.85, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_08_flour_cake", - "position": 8, - "ingredient_id": "flour_cake", - "subrecipe_id": null, - "quantity": 138, - "unit_id": "gram", - "percentage": 34.85, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_09_baking_soda", - "position": 9, - "ingredient_id": "baking_soda", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.26, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_10_baking_powder", - "position": 10, - "ingredient_id": "baking_powder", - "subrecipe_id": null, - "quantity": 5, - "unit_id": "gram", - "percentage": 1.26, - "basis_member": 0, - "optional": 0, - "notes": "1 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_11_salt", - "position": 11, - "ingredient_id": "salt", - "subrecipe_id": null, - "quantity": 10, - "unit_id": "gram", - "percentage": 2.53, - "basis_member": 0, - "optional": 0, - "notes": "2 t", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_12_cinnamon", - "position": 12, - "ingredient_id": "cinnamon", - "subrecipe_id": null, - "quantity": 6, - "unit_id": "gram", - "percentage": 1.52, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_13_ginger", - "position": 13, - "ingredient_id": "ginger", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.51, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_14_nutmeg", - "position": 14, - "ingredient_id": "nutmeg", - "subrecipe_id": null, - "quantity": 2, - "unit_id": "gram", - "percentage": 0.51, - "basis_member": 0, - "optional": 0, - "notes": "ground", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_15_zucchini", - "position": 15, - "ingredient_id": "zucchini", - "subrecipe_id": null, - "quantity": 303, - "unit_id": "gram", - "percentage": 76.52, - "basis_member": 0, - "optional": 0, - "notes": "grated", - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_16_flour_all_purpose", - "position": 16, - "ingredient_id": "flour_all_purpose", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 15.15, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_17_flour_whole_wheat", - "position": 17, - "ingredient_id": "flour_whole_wheat", - "subrecipe_id": null, - "quantity": 60, - "unit_id": "gram", - "percentage": 15.15, - "basis_member": 1, - "optional": 0, - "notes": null, - "nutrition_retention_factor": 1, - "prep_actions": [] - }, - { - "component_id": "main", - "id": "line_18_pecan", - "position": 18, - "ingredient_id": "pecan", - "subrecipe_id": null, - "quantity": 135, - "unit_id": "gram", - "percentage": 34.09, - "basis_member": 0, - "optional": 0, - "notes": "toasted & chopped", - "nutrition_retention_factor": 1, - "prep_actions": [] - } - ], - "steps": [ - { - "id": "step_1", - "position": 1, - "instruction": "In a mixer fitted with a whisk attachment, whisk the sugars, eggs, and extract until light and thick.", - "critical_control_point": 0, - "equipment_ids": [ - "stand_mixer", - "whisk" - ] - }, - { - "id": "step_2", - "position": 2, - "instruction": "Gradually add the oil.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_3", - "position": 3, - "instruction": "Add the sifted dry ingredients and whisk until smooth, scraping down the bowl as necessary.", - "critical_control_point": 0, - "equipment_ids": [ - "mixing_bowl", - "whisk" - ] - }, - { - "id": "step_4", - "position": 4, - "instruction": "Combine the grated zucchini, second weight of all-purpose flour, and whole wheat flour.", - "critical_control_point": 0, - "equipment_ids": [ - "kitchen_scale" - ] - }, - { - "id": "step_5", - "position": 5, - "instruction": "Fold the zucchini mixture, along with the pecans, into the rest of the batter until homogenous.", - "critical_control_point": 0, - "equipment_ids": [] - }, - { - "id": "step_6", - "position": 6, - "instruction": "Bake at 325°F (163°C) until a skewer inserted comes out clean.", - "critical_control_point": 0, - "equipment_ids": [ - "oven", - "thermometer" - ] - } - ], - "measure_conversions": [], - "media": [] } ], "purchase_items": [ @@ -144314,1925 +38546,7 @@ "nutrition_json": "{\"calcium_mg\":0,\"carbohydrate_g\":0,\"cholesterol_mg\":0,\"dietary_fiber_g\":0,\"energy_kcal\":0,\"iron_mg\":0,\"protein_g\":0,\"saturated_fat_g\":0,\"sodium_mg\":0,\"total_fat_g\":0,\"total_sugars_g\":0}" } ], - "collections": [ - { - "id": "the_pastry_chefs_little_black_book_vol_1", - "name": "The Pastry Chef's Little Black Book (Vol. I)", - "description": "Classic culinary pastry reference by Michael Zebrowski & Michael Mignano (477 formulations across 13 chapters).", - "source_json": "{}", - "deleted_at": null, - "recipes": [ - { - "recipe_id": "linzer_dough", - "position": 1 - }, - { - "recipe_id": "pate_brisee", - "position": 2 - }, - { - "recipe_id": "whole_wheat_pate_brisee", - "position": 3 - }, - { - "recipe_id": "pate_sable", - "position": 4 - }, - { - "recipe_id": "almond_pate_sable", - "position": 5 - }, - { - "recipe_id": "chocolate_pat_e_sable", - "position": 6 - }, - { - "recipe_id": "cornmeal_pate_sable", - "position": 7 - }, - { - "recipe_id": "graham_cracker_pate_sable", - "position": 8 - }, - { - "recipe_id": "pate_sucree", - "position": 9 - }, - { - "recipe_id": "almond_pate_sucree", - "position": 10 - }, - { - "recipe_id": "chocolate_pate_sucree", - "position": 11 - }, - { - "recipe_id": "all_butter_pie_dough", - "position": 12 - }, - { - "recipe_id": "flaky_american_pie_dough", - "position": 13 - }, - { - "recipe_id": "quick_puff_pastry", - "position": 14 - }, - { - "recipe_id": "chocolate_puff_pastry", - "position": 15 - }, - { - "recipe_id": "classic_puff_pastry", - "position": 16 - }, - { - "recipe_id": "inverse_puff_pastry", - "position": 17 - }, - { - "recipe_id": "choux_aux_craquelin", - "position": 18 - }, - { - "recipe_id": "cobbler_dough", - "position": 19 - }, - { - "recipe_id": "gingerbread_house_dough", - "position": 20 - }, - { - "recipe_id": "pate_a_choux", - "position": 21 - }, - { - "recipe_id": "strudel_dough", - "position": 22 - }, - { - "recipe_id": "oat_crumb_topping", - "position": 23 - }, - { - "recipe_id": "streusel_topping", - "position": 24 - }, - { - "recipe_id": "beet_tart_filling", - "position": 25 - }, - { - "recipe_id": "bittersweet_chocolate_custard_tart_filling", - "position": 26 - }, - { - "recipe_id": "bittersweet_chocolate_ganache_tart_filling", - "position": 27 - }, - { - "recipe_id": "caramel_nut_tart_filling", - "position": 28 - }, - { - "recipe_id": "caramel_custard_tart_filling", - "position": 29 - }, - { - "recipe_id": "chocolate_raspberry_tart_filling", - "position": 30 - }, - { - "recipe_id": "lemon_tart_filling", - "position": 31 - }, - { - "recipe_id": "milk_chocolate_nut_tart_filling", - "position": 32 - }, - { - "recipe_id": "passion_fruit_tart_filling", - "position": 33 - }, - { - "recipe_id": "peanut_caramel_tart_filling", - "position": 34 - }, - { - "recipe_id": "quiche_custard_tart_filling", - "position": 35 - }, - { - "recipe_id": "apple_pie_filling", - "position": 36 - }, - { - "recipe_id": "fresh_blueberry_pie_filling", - "position": 37 - }, - { - "recipe_id": "peach_pie_filling", - "position": 38 - }, - { - "recipe_id": "key_lime_pie", - "position": 39 - }, - { - "recipe_id": "key_lime_pie_p56", - "position": 40 - }, - { - "recipe_id": "pecan_pie_filling", - "position": 41 - }, - { - "recipe_id": "pumpkin_pie_filling", - "position": 42 - }, - { - "recipe_id": "rhubarb_pie_filling", - "position": 43 - }, - { - "recipe_id": "sour_cherry_pie_filling", - "position": 44 - }, - { - "recipe_id": "apple_strudel_filling", - "position": 45 - }, - { - "recipe_id": "cabbage_bacon_strudel_filling", - "position": 46 - }, - { - "recipe_id": "mixed_berry_strudel_filling", - "position": 47 - }, - { - "recipe_id": "baumkuchen_torte", - "position": 48 - }, - { - "recipe_id": "black_forest_chocolate_cake", - "position": 49 - }, - { - "recipe_id": "carrot_cake", - "position": 50 - }, - { - "recipe_id": "cheesecake_graham_cracker_crust", - "position": 51 - }, - { - "recipe_id": "goat_cheese_cheesecake", - "position": 52 - }, - { - "recipe_id": "new_york_cheesecake", - "position": 53 - }, - { - "recipe_id": "pumpkin_cheesecake", - "position": 54 - }, - { - "recipe_id": "chocolate_fruit_nut_cake", - "position": 55 - }, - { - "recipe_id": "classic_yellow_butter_cake", - "position": 56 - }, - { - "recipe_id": "devil_s_food_cake", - "position": 57 - }, - { - "recipe_id": "almond_financier", - "position": 58 - }, - { - "recipe_id": "chocolate_financier", - "position": 59 - }, - { - "recipe_id": "flourless_chocolate_cake", - "position": 60 - }, - { - "recipe_id": "flourless_chocolate_truffle_cake", - "position": 61 - }, - { - "recipe_id": "fruit_cake", - "position": 62 - }, - { - "recipe_id": "lemon_cake", - "position": 63 - }, - { - "recipe_id": "orange_olive_oil_cake", - "position": 64 - }, - { - "recipe_id": "moist_honey_cake", - "position": 65 - }, - { - "recipe_id": "pain_de_genes", - "position": 66 - }, - { - "recipe_id": "pumpkin_cake", - "position": 67 - }, - { - "recipe_id": "red_velvet_cake", - "position": 68 - }, - { - "recipe_id": "sweet_potato_cake", - "position": 69 - }, - { - "recipe_id": "tea_cake", - "position": 70 - }, - { - "recipe_id": "orange_tea_cake", - "position": 71 - }, - { - "recipe_id": "winemakers_grape_cake", - "position": 72 - }, - { - "recipe_id": "classic_pound_cake", - "position": 73 - }, - { - "recipe_id": "cornmeal_pound_cake", - "position": 74 - }, - { - "recipe_id": "cream_cheese_pound_cake", - "position": 75 - }, - { - "recipe_id": "hazelnut_pound_cake", - "position": 76 - }, - { - "recipe_id": "lemon_poppy_seed_pound_cake", - "position": 77 - }, - { - "recipe_id": "lemon_poppy_seed_pound_cake_p100", - "position": 78 - }, - { - "recipe_id": "marble_pound_cake", - "position": 79 - }, - { - "recipe_id": "pumpkin_chocolate_chip_pound_cake", - "position": 80 - }, - { - "recipe_id": "chocolate_souffle", - "position": 81 - }, - { - "recipe_id": "chocolate_souffle_p106", - "position": 82 - }, - { - "recipe_id": "grand_marnier_souffle", - "position": 83 - }, - { - "recipe_id": "grand_marnier_souffle_p108", - "position": 84 - }, - { - "recipe_id": "passion_fruit_souffle", - "position": 85 - }, - { - "recipe_id": "quark_souffle", - "position": 86 - }, - { - "recipe_id": "smoked_salmon_souffle", - "position": 87 - }, - { - "recipe_id": "chocolate_lava_cake", - "position": 88 - }, - { - "recipe_id": "chocolate_souffle_cakes", - "position": 89 - }, - { - "recipe_id": "chocolate_cupcakes", - "position": 90 - }, - { - "recipe_id": "gluten_free_chocolate_cupcakes", - "position": 91 - }, - { - "recipe_id": "white_cupcakes", - "position": 92 - }, - { - "recipe_id": "individual_french_angel_food_cakes", - "position": 93 - }, - { - "recipe_id": "individual_gluten_free_chocolate_cakes", - "position": 94 - }, - { - "recipe_id": "lemon_pudding_cakes", - "position": 95 - }, - { - "recipe_id": "banana_sheet_cake", - "position": 96 - }, - { - "recipe_id": "biscuit_a_la_cuillere", - "position": 97 - }, - { - "recipe_id": "biscuit_a_la_cuillere_au_chocolat", - "position": 98 - }, - { - "recipe_id": "blackberry_almond_sheet_cake", - "position": 99 - }, - { - "recipe_id": "blackout_sheet_cake", - "position": 100 - }, - { - "recipe_id": "brownie_sheet_cake", - "position": 101 - }, - { - "recipe_id": "carrot_sheet_cake", - "position": 102 - }, - { - "recipe_id": "lemon_chiffon_cake", - "position": 103 - }, - { - "recipe_id": "chocolate_chiffon_cake", - "position": 104 - }, - { - "recipe_id": "orange_chiffon_cake", - "position": 105 - }, - { - "recipe_id": "wedding_chiffon_sheet_cake", - "position": 106 - }, - { - "recipe_id": "chocolate_banana_sheet_cake", - "position": 107 - }, - { - "recipe_id": "chocolate_coconut_sheet_cake", - "position": 108 - }, - { - "recipe_id": "chocolate_sheet_cake_with_almond_paste", - "position": 109 - }, - { - "recipe_id": "chocolate_sheet_cake_with_hazelnut_paste", - "position": 110 - }, - { - "recipe_id": "crisp_dacquoise", - "position": 111 - }, - { - "recipe_id": "soft_coconut_dacquoise", - "position": 112 - }, - { - "recipe_id": "soft_hazelnut_dacquoise", - "position": 113 - }, - { - "recipe_id": "soft_lime_almond_dacquoise", - "position": 114 - }, - { - "recipe_id": "soft_pistachio_dacquoise", - "position": 115 - }, - { - "recipe_id": "frangipane_sheet_cake", - "position": 116 - }, - { - "recipe_id": "genoise_sheet_cake", - "position": 117 - }, - { - "recipe_id": "genoise_sheet_cake_with_coconut", - "position": 118 - }, - { - "recipe_id": "genoise_sheet_cake_with_nuts", - "position": 119 - }, - { - "recipe_id": "soft_gingerbread_sheet_cake", - "position": 120 - }, - { - "recipe_id": "gluten_free_butter_almond_sheet_cake", - "position": 121 - }, - { - "recipe_id": "gluten_free_chocolate_sheet_cake", - "position": 122 - }, - { - "recipe_id": "joconde_sheet_cake", - "position": 123 - }, - { - "recipe_id": "pistachio_joconde_sheet_cake", - "position": 124 - }, - { - "recipe_id": "light_almond_sheet_cake", - "position": 125 - }, - { - "recipe_id": "milk_sponge_sheet_cake", - "position": 126 - }, - { - "recipe_id": "pate_decor", - "position": 127 - }, - { - "recipe_id": "pate_decor_au_chocolat", - "position": 128 - }, - { - "recipe_id": "petits_fours_glace_sheet_cake", - "position": 129 - }, - { - "recipe_id": "poppy_seed_sheet_cake", - "position": 130 - }, - { - "recipe_id": "praline_sheet_cake", - "position": 131 - }, - { - "recipe_id": "roulade_sheet_cake", - "position": 132 - }, - { - "recipe_id": "chocolate_roulade_sheet_cake", - "position": 133 - }, - { - "recipe_id": "sacher_torte_sheet_cake", - "position": 134 - }, - { - "recipe_id": "vanilla_sheet_cake", - "position": 135 - }, - { - "recipe_id": "walnut_sheet_cake", - "position": 136 - }, - { - "recipe_id": "white_chocolate_sheet_cake", - "position": 137 - }, - { - "recipe_id": "american_buttercream", - "position": 138 - }, - { - "recipe_id": "creme_anglaise_buttercream", - "position": 139 - }, - { - "recipe_id": "creme_anglaise_chocolate_buttercream", - "position": 140 - }, - { - "recipe_id": "french_buttercream", - "position": 141 - }, - { - "recipe_id": "italian_meringue_buttercream", - "position": 142 - }, - { - "recipe_id": "swiss_meringue_buttercream", - "position": 143 - }, - { - "recipe_id": "chocolate_ganache_frosting", - "position": 144 - }, - { - "recipe_id": "chocolate_sour_cream_frosting", - "position": 145 - }, - { - "recipe_id": "german_chocolate_frosting", - "position": 146 - }, - { - "recipe_id": "peanut_butter_frosting", - "position": 147 - }, - { - "recipe_id": "white_chocolate_cream_cheese_frosting", - "position": 148 - }, - { - "recipe_id": "basic_creme_mousseline", - "position": 149 - }, - { - "recipe_id": "chocolate_creme_mousseline", - "position": 150 - }, - { - "recipe_id": "coconut_creme_mousseline", - "position": 151 - }, - { - "recipe_id": "fruit_creme_mousseline", - "position": 152 - }, - { - "recipe_id": "maple_creme_mousseline", - "position": 153 - }, - { - "recipe_id": "caramel_glaze", - "position": 154 - }, - { - "recipe_id": "lavender_vanilla_glaze", - "position": 155 - }, - { - "recipe_id": "pistachio_glaze", - "position": 156 - }, - { - "recipe_id": "shiny_red_glaze", - "position": 157 - }, - { - "recipe_id": "chocolate_mirror_glaze", - "position": 158 - }, - { - "recipe_id": "chocolate_butter_glaze", - "position": 159 - }, - { - "recipe_id": "white_chocolate_glaze", - "position": 160 - }, - { - "recipe_id": "classic_creme_brulee", - "position": 161 - }, - { - "recipe_id": "chocolate_creme_brulee", - "position": 162 - }, - { - "recipe_id": "honey_rosemary_creme_brulee", - "position": 163 - }, - { - "recipe_id": "mandarin_orange_creme_brulee", - "position": 164 - }, - { - "recipe_id": "pumpkin_creme_brulee", - "position": 165 - }, - { - "recipe_id": "lemon_curd", - "position": 166 - }, - { - "recipe_id": "lime_curd", - "position": 167 - }, - { - "recipe_id": "mandarin_orange_curd", - "position": 168 - }, - { - "recipe_id": "passion_fruit_curd", - "position": 169 - }, - { - "recipe_id": "almond_cream_with_almond_flour", - "position": 170 - }, - { - "recipe_id": "almond_cream_with_almond_paste", - "position": 171 - }, - { - "recipe_id": "cannoli_cream", - "position": 172 - }, - { - "recipe_id": "flavored_chantilly_recipes", - "position": 173 - }, - { - "recipe_id": "flavored_chantilly_recipes_p204", - "position": 174 - }, - { - "recipe_id": "gianduja", - "position": 175 - }, - { - "recipe_id": "gianduja_p205", - "position": 176 - }, - { - "recipe_id": "coconut_chiboust", - "position": 177 - }, - { - "recipe_id": "vanilla_chiboust", - "position": 178 - }, - { - "recipe_id": "flexible_chocolate_ganache", - "position": 179 - }, - { - "recipe_id": "country_cream", - "position": 180 - }, - { - "recipe_id": "chocolate_cremeux", - "position": 181 - }, - { - "recipe_id": "mocha_cremeux", - "position": 182 - }, - { - "recipe_id": "cream_cheese_flan", - "position": 183 - }, - { - "recipe_id": "tres_leches_flan", - "position": 184 - }, - { - "recipe_id": "brioche_frangipane", - "position": 185 - }, - { - "recipe_id": "chestnut_frangipane", - "position": 186 - }, - { - "recipe_id": "coconut_frangipane", - "position": 187 - }, - { - "recipe_id": "lightened_vanilla_creme_mousseline", - "position": 188 - }, - { - "recipe_id": "pastry_cream", - "position": 189 - }, - { - "recipe_id": "pistachio_almond_cream", - "position": 190 - }, - { - "recipe_id": "pots_de_creme", - "position": 191 - }, - { - "recipe_id": "stabilized_whipped_cream", - "position": 192 - }, - { - "recipe_id": "tiramisu_cream", - "position": 193 - }, - { - "recipe_id": "buttermilk_panna_cotta", - "position": 194 - }, - { - "recipe_id": "creme_fraiche_panna_cotta", - "position": 195 - }, - { - "recipe_id": "green_tea_panna_cotta", - "position": 196 - }, - { - "recipe_id": "lychee_vanilla_panna_cotta", - "position": 197 - }, - { - "recipe_id": "passion_fruit_panna_cotta", - "position": 198 - }, - { - "recipe_id": "pumpkin_panna_cotta", - "position": 199 - }, - { - "recipe_id": "vanilla_panna_cotta", - "position": 200 - }, - { - "recipe_id": "arborio_rice_pudding", - "position": 201 - }, - { - "recipe_id": "banana", - "position": 202 - }, - { - "recipe_id": "chocolate_bread_pudding_custard", - "position": 203 - }, - { - "recipe_id": "coconut_tapioca", - "position": 204 - }, - { - "recipe_id": "semolina_pudding", - "position": 205 - }, - { - "recipe_id": "bittersweet_chocolate_mousse", - "position": 206 - }, - { - "recipe_id": "chocolate_hazelnut_mousse", - "position": 207 - }, - { - "recipe_id": "gianduja_mousse", - "position": 208 - }, - { - "recipe_id": "milk_chocolate_mousse", - "position": 209 - }, - { - "recipe_id": "marquise_au_chocolat", - "position": 210 - }, - { - "recipe_id": "milk_chocolate_caramel_mousse", - "position": 211 - }, - { - "recipe_id": "white_chocolate_mousse", - "position": 212 - }, - { - "recipe_id": "triple_chocolate_mousse", - "position": 213 - }, - { - "recipe_id": "triple_chocolate_mousse_p244", - "position": 214 - }, - { - "recipe_id": "milk_chocolate", - "position": 215 - }, - { - "recipe_id": "milk_chocolate_p245", - "position": 216 - }, - { - "recipe_id": "apricot_mousse", - "position": 217 - }, - { - "recipe_id": "black_cherry_mousse", - "position": 218 - }, - { - "recipe_id": "blackberry_mousse", - "position": 219 - }, - { - "recipe_id": "blood_orange_mousse", - "position": 220 - }, - { - "recipe_id": "blueberry_mousse", - "position": 221 - }, - { - "recipe_id": "chocolate_apricot_mousse", - "position": 222 - }, - { - "recipe_id": "chocolate_raspberry_mousse", - "position": 223 - }, - { - "recipe_id": "coconut_mousse", - "position": 224 - }, - { - "recipe_id": "fresh_banana_mousse", - "position": 225 - }, - { - "recipe_id": "green_apple_mousse", - "position": 226 - }, - { - "recipe_id": "guava_mousse", - "position": 227 - }, - { - "recipe_id": "lemon_mousse_with_lemon_curd", - "position": 228 - }, - { - "recipe_id": "lime_mousse", - "position": 229 - }, - { - "recipe_id": "lychee_mousse", - "position": 230 - }, - { - "recipe_id": "mandarin_orange_mousse", - "position": 231 - }, - { - "recipe_id": "mango_mousse", - "position": 232 - }, - { - "recipe_id": "papaya_mousse", - "position": 233 - }, - { - "recipe_id": "passion_fruit_mousse", - "position": 234 - }, - { - "recipe_id": "peach_mousse", - "position": 235 - }, - { - "recipe_id": "pear_mousse", - "position": 236 - }, - { - "recipe_id": "pink_grapefruit_mousse", - "position": 237 - }, - { - "recipe_id": "plum_mousse", - "position": 238 - }, - { - "recipe_id": "pumpkin_mousse", - "position": 239 - }, - { - "recipe_id": "raspberry_mousse", - "position": 240 - }, - { - "recipe_id": "redcurrant_mousse", - "position": 241 - }, - { - "recipe_id": "rhubarb_mousse", - "position": 242 - }, - { - "recipe_id": "strawberry_mousse", - "position": 243 - }, - { - "recipe_id": "yuzu_mousse", - "position": 244 - }, - { - "recipe_id": "almond_milk_mousse", - "position": 245 - }, - { - "recipe_id": "brie_cheese_mousse", - "position": 246 - }, - { - "recipe_id": "chestnut_mousse", - "position": 247 - }, - { - "recipe_id": "caramel_mousse", - "position": 248 - }, - { - "recipe_id": "elderflower_mousse", - "position": 249 - }, - { - "recipe_id": "fromage_blanc_mousse", - "position": 250 - }, - { - "recipe_id": "espresso_mousse", - "position": 251 - }, - { - "recipe_id": "mascarpone_mousse", - "position": 252 - }, - { - "recipe_id": "peanut_butter_mousse", - "position": 253 - }, - { - "recipe_id": "poppy_seed_mousse", - "position": 254 - }, - { - "recipe_id": "yogurt_mousse", - "position": 255 - }, - { - "recipe_id": "almond_bavarian_cream", - "position": 256 - }, - { - "recipe_id": "apricot_passion_fruit_bavarian_cream", - "position": 257 - }, - { - "recipe_id": "chocolate_bavarian_cream", - "position": 258 - }, - { - "recipe_id": "coconut_bavarian_cream", - "position": 259 - }, - { - "recipe_id": "fruit_bavarian_cream", - "position": 260 - }, - { - "recipe_id": "honey_bavarian_cream", - "position": 261 - }, - { - "recipe_id": "milk_chocolate_bavarian_cream", - "position": 262 - }, - { - "recipe_id": "pistachio_bavarian_cream", - "position": 263 - }, - { - "recipe_id": "apple_blondies", - "position": 264 - }, - { - "recipe_id": "anisette_biscotti", - "position": 265 - }, - { - "recipe_id": "chocolate_pistachio_cherry_biscotti", - "position": 266 - }, - { - "recipe_id": "chocolate_brownies", - "position": 267 - }, - { - "recipe_id": "chocolate_chip_cookies", - "position": 268 - }, - { - "recipe_id": "double_chocolate_chip_cookies", - "position": 269 - }, - { - "recipe_id": "espresso_white_chocolate_chip_cookies", - "position": 270 - }, - { - "recipe_id": "whole_wheat_chocolate_chip_cookies", - "position": 271 - }, - { - "recipe_id": "valrhona_chocolate_chunk_cookies", - "position": 272 - }, - { - "recipe_id": "chocolate_crinkle_cookies", - "position": 273 - }, - { - "recipe_id": "soft_chocolate_molasses_cookies", - "position": 274 - }, - { - "recipe_id": "coconut_haystacks", - "position": 275 - }, - { - "recipe_id": "dog_biscuits", - "position": 276 - }, - { - "recipe_id": "fig_bars", - "position": 277 - }, - { - "recipe_id": "gingerbread_cookies", - "position": 278 - }, - { - "recipe_id": "green_tea_coconut_diamant", - "position": 279 - }, - { - "recipe_id": "lavender_honey_almond_bars", - "position": 280 - }, - { - "recipe_id": "macarons", - "position": 281 - }, - { - "recipe_id": "chocolate_macarons", - "position": 282 - }, - { - "recipe_id": "lemon_olive_oil_madeleines", - "position": 283 - }, - { - "recipe_id": "oatmeal_raisin_cookies", - "position": 284 - }, - { - "recipe_id": "peanut_butter_cookies", - "position": 285 - }, - { - "recipe_id": "peanut_butter_shortbread_bar_cookies", - "position": 286 - }, - { - "recipe_id": "pecan_puffs", - "position": 287 - }, - { - "recipe_id": "rugelach_dough", - "position": 288 - }, - { - "recipe_id": "black_olive_parmesan_sable_cookies", - "position": 289 - }, - { - "recipe_id": "sable_breton", - "position": 290 - }, - { - "recipe_id": "hazelnut_sable_cookies", - "position": 291 - }, - { - "recipe_id": "rosemary_cornmeal_sable_cookies", - "position": 292 - }, - { - "recipe_id": "scandinavian_butter_cookies", - "position": 293 - }, - { - "recipe_id": "snickerdoodle_cookies", - "position": 294 - }, - { - "recipe_id": "chai_spiced_snickerdoodle_bars", - "position": 295 - }, - { - "recipe_id": "chai_spiced_sugar_recipe", - "position": 296 - }, - { - "recipe_id": "speculoos", - "position": 297 - }, - { - "recipe_id": "sugar_cookies", - "position": 298 - }, - { - "recipe_id": "vanilla_crescents", - "position": 299 - }, - { - "recipe_id": "apple_paper_tuiles", - "position": 300 - }, - { - "recipe_id": "chocolate_tuiles", - "position": 301 - }, - { - "recipe_id": "chocolate_crystalline_tuiles", - "position": 302 - }, - { - "recipe_id": "chocolate_lace_tuiles", - "position": 303 - }, - { - "recipe_id": "chocolate_pastry_cream_tuiles", - "position": 304 - }, - { - "recipe_id": "coconut_tuiles", - "position": 305 - }, - { - "recipe_id": "fruit_tuiles", - "position": 306 - }, - { - "recipe_id": "honey_whole_wheat_tuiles", - "position": 307 - }, - { - "recipe_id": "lace_tuiles", - "position": 308 - }, - { - "recipe_id": "orange_tuiles", - "position": 309 - }, - { - "recipe_id": "pumpkin_tuiles", - "position": 310 - }, - { - "recipe_id": "sesame_tuiles", - "position": 311 - }, - { - "recipe_id": "vanilla_tuiles", - "position": 312 - }, - { - "recipe_id": "apple_cider_sauce", - "position": 313 - }, - { - "recipe_id": "caramel_gastrique", - "position": 314 - }, - { - "recipe_id": "classic_caramel_sauce", - "position": 315 - }, - { - "recipe_id": "crepe_suzette_caramel_sauce", - "position": 316 - }, - { - "recipe_id": "vanilla_bourbon_caramel_sauce", - "position": 317 - }, - { - "recipe_id": "chocolate_fondue", - "position": 318 - }, - { - "recipe_id": "chocolate_sauce", - "position": 319 - }, - { - "recipe_id": "shiny_chocolate_sauce", - "position": 320 - }, - { - "recipe_id": "clear_vanilla_sauce", - "position": 321 - }, - { - "recipe_id": "malt_creme_anglaise", - "position": 322 - }, - { - "recipe_id": "creme_anglaise_sous_vide_method", - "position": 323 - }, - { - "recipe_id": "hot_fudge_sauce", - "position": 324 - }, - { - "recipe_id": "lemon_basil_sauce", - "position": 325 - }, - { - "recipe_id": "mandarin_lime_sauce", - "position": 326 - }, - { - "recipe_id": "orange_saffron_sauce", - "position": 327 - }, - { - "recipe_id": "raspberry_sauce", - "position": 328 - }, - { - "recipe_id": "strawberry_passion_fruit_sauce", - "position": 329 - }, - { - "recipe_id": "toffee_sauce", - "position": 330 - }, - { - "recipe_id": "apple_cider_sabayon", - "position": 331 - }, - { - "recipe_id": "champagne_sabayon", - "position": 332 - }, - { - "recipe_id": "coffee_sabayon_cream", - "position": 333 - }, - { - "recipe_id": "dessert_wine_sabayon", - "position": 334 - }, - { - "recipe_id": "ginger_sake_sabayon", - "position": 335 - }, - { - "recipe_id": "port_wine_sabayon", - "position": 336 - }, - { - "recipe_id": "rum_sabayon", - "position": 337 - }, - { - "recipe_id": "port_cassis_poaching_liquid", - "position": 338 - }, - { - "recipe_id": "spiced_poaching_liquid", - "position": 339 - }, - { - "recipe_id": "four_spice_syrup", - "position": 340 - }, - { - "recipe_id": "red_wine_reduction", - "position": 341 - }, - { - "recipe_id": "bacon_maple_bonbon_ganache", - "position": 342 - }, - { - "recipe_id": "caramel_ginger_bonbon_ganache", - "position": 343 - }, - { - "recipe_id": "caramel_milk_chocolate_bonbon_ganache", - "position": 344 - }, - { - "recipe_id": "caramel_olive_oil_pine_nut_bonbon_ganache", - "position": 345 - }, - { - "recipe_id": "cherry_vanilla_bonbon_ganache", - "position": 346 - }, - { - "recipe_id": "chocolate_raspberry_bonbon_ganache", - "position": 347 - }, - { - "recipe_id": "coconut_bonbon_ganache", - "position": 348 - }, - { - "recipe_id": "espresso_bonbon_ganache", - "position": 349 - }, - { - "recipe_id": "lime_bonbon_ganache", - "position": 350 - }, - { - "recipe_id": "milk_chocolate_banana_bonbon_ganache", - "position": 351 - }, - { - "recipe_id": "milk_chocolate_lemon_bonbon_ganache", - "position": 352 - }, - { - "recipe_id": "milk_chocolate_raspberry_bonbon_ganache", - "position": 353 - }, - { - "recipe_id": "mint_bonbon_ganache", - "position": 354 - }, - { - "recipe_id": "passion_fruit_bonbon_ganache", - "position": 355 - }, - { - "recipe_id": "pistachio_bonbon_ganache", - "position": 356 - }, - { - "recipe_id": "spice_bonbon_ganache", - "position": 357 - }, - { - "recipe_id": "sweet_potato_caramel_bonbon_ganache", - "position": 358 - }, - { - "recipe_id": "tea_infused_chocolate_bonbon_ganache", - "position": 359 - }, - { - "recipe_id": "tequila_lime_bonbon_ganache", - "position": 360 - }, - { - "recipe_id": "valrhona_azelia_praline_bonbon_ganache", - "position": 361 - }, - { - "recipe_id": "vanilla_rum_bonbon_ganache", - "position": 362 - }, - { - "recipe_id": "classic_chocolate_truffle_ganache", - "position": 363 - }, - { - "recipe_id": "orange_truffle_ganache", - "position": 364 - }, - { - "recipe_id": "praline_truffle_ganache", - "position": 365 - }, - { - "recipe_id": "dark_chocolate_praline_feuilletine", - "position": 366 - }, - { - "recipe_id": "milk_chocolate_praline_feuilletine", - "position": 367 - }, - { - "recipe_id": "peanut_butter_feuilletine", - "position": 368 - }, - { - "recipe_id": "pistachio_white_chocolate_feuilletine", - "position": 369 - }, - { - "recipe_id": "praline_feuilletine_with_cocoa_nibs", - "position": 370 - }, - { - "recipe_id": "almond_toffee", - "position": 371 - }, - { - "recipe_id": "candied_apple_caramel", - "position": 372 - }, - { - "recipe_id": "caramelized_nuts", - "position": 373 - }, - { - "recipe_id": "chef_michael_mignano_s_famous_mignano_bar", - "position": 374 - }, - { - "recipe_id": "ganache", - "position": 375 - }, - { - "recipe_id": "ganache_p415", - "position": 376 - }, - { - "recipe_id": "famous_mignano_bar", - "position": 377 - }, - { - "recipe_id": "marshmallows", - "position": 378 - }, - { - "recipe_id": "nougat_de_montelimar", - "position": 379 - }, - { - "recipe_id": "peanut_brittle", - "position": 380 - }, - { - "recipe_id": "sesame_ginger_brittle", - "position": 381 - }, - { - "recipe_id": "soft_apple_cider_caramels", - "position": 382 - }, - { - "recipe_id": "soft_chocolate_caramels", - "position": 383 - }, - { - "recipe_id": "spiced_candied_peanuts", - "position": 384 - }, - { - "recipe_id": "armagnac_prune_ice_cream", - "position": 385 - }, - { - "recipe_id": "basic_ice_cream_base", - "position": 386 - }, - { - "recipe_id": "black_sesame_ice_cream", - "position": 387 - }, - { - "recipe_id": "brioche_ice_cream", - "position": 388 - }, - { - "recipe_id": "caramel_ice_cream", - "position": 389 - }, - { - "recipe_id": "chocolate_ice_cream", - "position": 390 - }, - { - "recipe_id": "cinnamon_ice_cream", - "position": 391 - }, - { - "recipe_id": "goat_milk_ice_cream", - "position": 392 - }, - { - "recipe_id": "coffee_ice_cream", - "position": 393 - }, - { - "recipe_id": "honey_ice_cream", - "position": 394 - }, - { - "recipe_id": "rose_petal_ice_cream", - "position": 395 - }, - { - "recipe_id": "pumpkin_ice_cream", - "position": 396 - }, - { - "recipe_id": "strawberry_ice_cream", - "position": 397 - }, - { - "recipe_id": "sweet_corn_ice_cream", - "position": 398 - }, - { - "recipe_id": "campari_sorbet", - "position": 399 - }, - { - "recipe_id": "fromage_blanc_sorbet", - "position": 400 - }, - { - "recipe_id": "lemon_sorbet", - "position": 401 - }, - { - "recipe_id": "mandarin_champagne_sorbet", - "position": 402 - }, - { - "recipe_id": "mango_sorbet", - "position": 403 - }, - { - "recipe_id": "mascarpone_sorbet", - "position": 404 - }, - { - "recipe_id": "raspberry_sorbet", - "position": 405 - }, - { - "recipe_id": "savory_tomato_sorbet", - "position": 406 - }, - { - "recipe_id": "strawberry_passion_fruit_sorbet", - "position": 407 - }, - { - "recipe_id": "valrhona_guanaja_chocolate_sorbet", - "position": 408 - }, - { - "recipe_id": "watermelon_sorbet", - "position": 409 - }, - { - "recipe_id": "blackberry_granite", - "position": 410 - }, - { - "recipe_id": "champagne_passion_fruit_granite", - "position": 411 - }, - { - "recipe_id": "cranberry_granite", - "position": 412 - }, - { - "recipe_id": "espresso_granite", - "position": 413 - }, - { - "recipe_id": "lemon_granite", - "position": 414 - }, - { - "recipe_id": "mint_granite", - "position": 415 - }, - { - "recipe_id": "raspberry_fig_sangria_granite", - "position": 416 - }, - { - "recipe_id": "banana_peanut_butter_semifreddo", - "position": 417 - }, - { - "recipe_id": "chestnut_semifreddo", - "position": 418 - }, - { - "recipe_id": "chocolate_semifreddo", - "position": 419 - }, - { - "recipe_id": "grand_marnier_semifreddo", - "position": 420 - }, - { - "recipe_id": "crispy_hazelnut_semifreddo", - "position": 421 - }, - { - "recipe_id": "nougat_semifreddo", - "position": 422 - }, - { - "recipe_id": "classic_ice_cream_sandwich_cookie", - "position": 423 - }, - { - "recipe_id": "sorbet_syrup", - "position": 424 - }, - { - "recipe_id": "wet_nut_topping", - "position": 425 - }, - { - "recipe_id": "bagels", - "position": 426 - }, - { - "recipe_id": "whole_wheat_bagels", - "position": 427 - }, - { - "recipe_id": "banana_bread", - "position": 428 - }, - { - "recipe_id": "corn_bread", - "position": 429 - }, - { - "recipe_id": "zucchini_bread", - "position": 430 - }, - { - "recipe_id": "brioche", - "position": 431 - }, - { - "recipe_id": "pumpkin_brioche", - "position": 432 - }, - { - "recipe_id": "chocolate_babka", - "position": 433 - }, - { - "recipe_id": "churros", - "position": 434 - }, - { - "recipe_id": "coffee_cake", - "position": 435 - }, - { - "recipe_id": "croissant_dough", - "position": 436 - }, - { - "recipe_id": "danish_pastry_dough", - "position": 437 - }, - { - "recipe_id": "apple_cider_doughnuts", - "position": 438 - }, - { - "recipe_id": "yeast_doughnuts", - "position": 439 - }, - { - "recipe_id": "english_muffins", - "position": 440 - }, - { - "recipe_id": "crepe_batter", - "position": 441 - }, - { - "recipe_id": "fruit_nut_granola", - "position": 442 - }, - { - "recipe_id": "olive_oil_maple_granola", - "position": 443 - }, - { - "recipe_id": "granola_buttermilk_waffles", - "position": 444 - }, - { - "recipe_id": "kouign_amann", - "position": 445 - }, - { - "recipe_id": "apple_muffins", - "position": 446 - }, - { - "recipe_id": "blueberry_muffins", - "position": 447 - }, - { - "recipe_id": "bran_muffins", - "position": 448 - }, - { - "recipe_id": "corn_muffins", - "position": 449 - }, - { - "recipe_id": "lemon_poppy_seed_muffins", - "position": 450 - }, - { - "recipe_id": "pumpkin_muffins", - "position": 451 - }, - { - "recipe_id": "vegan_tofu_muffins", - "position": 452 - }, - { - "recipe_id": "north_african_honeycomb_pancakes", - "position": 453 - }, - { - "recipe_id": "panettone", - "position": 454 - }, - { - "recipe_id": "raisin_challah", - "position": 455 - }, - { - "recipe_id": "scones", - "position": 456 - }, - { - "recipe_id": "stollen", - "position": 457 - }, - { - "recipe_id": "swiss_muesli", - "position": 458 - }, - { - "recipe_id": "buttermilk_biscuits", - "position": 459 - }, - { - "recipe_id": "gluten_free_ham_cheese_buttermilk_biscuits", - "position": 460 - }, - { - "recipe_id": "cheddar_cheese_crackers", - "position": 461 - }, - { - "recipe_id": "roquefort_walnut_crackers", - "position": 462 - }, - { - "recipe_id": "crisp_flatbread", - "position": 463 - }, - { - "recipe_id": "focaccia", - "position": 464 - }, - { - "recipe_id": "cheese_focaccia", - "position": 465 - }, - { - "recipe_id": "fougasse", - "position": 466 - }, - { - "recipe_id": "irish_soda_bread", - "position": 467 - }, - { - "recipe_id": "kaiser_rolls", - "position": 468 - }, - { - "recipe_id": "kalamata_olive_bread_with_herbes_de_provence", - "position": 469 - }, - { - "recipe_id": "naan_indian_flatbread", - "position": 470 - }, - { - "recipe_id": "oatmeal_walnut_bread", - "position": 471 - }, - { - "recipe_id": "pain_de_mie", - "position": 472 - }, - { - "recipe_id": "pain_viennois", - "position": 473 - }, - { - "recipe_id": "pizza_dough", - "position": 474 - }, - { - "recipe_id": "potato_rolls", - "position": 475 - }, - { - "recipe_id": "soft_dinner_rolls", - "position": 476 - }, - { - "recipe_id": "buttered_soft_pretzels", - "position": 477 - } - ] - } - ], + "collections": [], "inventory_locations": [ { "id": "loc_walk_in", @@ -147743,4 +40057,4 @@ } ] } -} \ No newline at end of file +} diff --git a/docs/api-and-mcp-guide.md b/docs/api-guide.md similarity index 54% rename from docs/api-and-mcp-guide.md rename to docs/api-guide.md index 5c45960..9976b61 100644 --- a/docs/api-and-mcp-guide.md +++ b/docs/api-guide.md @@ -1,90 +1,8 @@ -# Formulation API & Model Context Protocol (MCP) Guide +# Formulation REST API Guide -Formulation exposes two programmatic interfaces for querying, scaling, costing, and manipulating culinary data: -1. **Model Context Protocol (MCP) Server**: A standard stdio JSON-RPC server enabling AI assistants (Claude Desktop, Antigravity, Cursor, Gemini) to directly search, retrieve, cost, scale, and save recipes, ingredients, books, and inventory counts. -2. **REST Web API (`/api/v1/`)**: HTTP JSON endpoints for external systems, webhooks, and programmatic integrations. +Formulation exposes HTTP JSON endpoints for external systems, webhooks, and programmatic integrations. ---- - -## 1. Model Context Protocol (MCP) Server - -### Starting the Server -```bash -npm run mcp -# or directly: -node scripts/mcp-server.mjs -``` - -### Client Configuration Examples - -#### Claude Desktop (`%APPDATA%\Claude\claude_desktop_config.json` on Windows / `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS) -```json -{ - "mcpServers": { - "formulation": { - "command": "node", - "args": [ - "C:\\Users\\nicholas\\Documents\\repos\\formulation\\scripts\\mcp-server.mjs" - ] - } - } -} -``` - -#### Antigravity / Gemini (`.gemini/config/mcp_config.json`) -```json -{ - "mcpServers": { - "formulation": { - "command": "node", - "args": [ - "scripts/mcp-server.mjs" - ] - } - } -} -``` - -#### Cursor (`.cursor/mcp.json`) -```json -{ - "mcpServers": { - "formulation": { - "command": "node", - "args": ["scripts/mcp-server.mjs"] - } - } -} -``` - ---- - -### MCP Tools Reference (15 Domain Tools) - -| Tool | Parameters | Description | -| --- | --- | --- | -| `search_recipes` | `query?`, `category?`, `tag?`, `limit?` | Search recipes by keyword, category, or tag | -| `get_recipe` | `id`, `scale_factor?`, `target_yield?`, `target_yield_unit?` | Retrieve full recipe formulation with optional scaling | -| `save_recipe` | `id?`, `title`, `yield_quantity`, `yield_unit_id`, `components`, `steps`, `notes?` | Create or update a recipe formulation with validation | -| `delete_recipe` | `id` | Safely archive a recipe from the active library | -| `calculate_recipe_cost` | `recipe_id`, `currency?` | Compute itemized ingredient & sub-recipe cost breakdown | -| `calculate_recipe_nutrition` | `recipe_id`, `serving_size_g?` | Compute nutrition facts panel (macros/micros) | -| `search_ingredients` | `query?`, `category?`, `missing_cost?`, `limit?` | Search ingredients in the pantry catalog | -| `get_ingredient` | `id` | Get ingredient detail with density, conversions, and prices | -| `save_ingredient` | `id?`, `name`, `description?`, `categories?`, `tags?`, `aliases?`, `density?` | Create or update an ingredient with density & aliases | -| `delete_ingredient` | `id` | Safely archive an ingredient (blocks if used in active recipes) | -| `convert_units` | `ingredient_id?`, `quantity`, `from_unit`, `to_unit` | Convert culinary units safely using density data | -| `list_inventory_counts` | `status?` (`'all' \| 'open' \| 'completed'`) | List inventory counting sessions | -| `get_inventory_count` | `id` | Get full count sheet with locations, items, unit costs, and valuations | -| `list_recipe_books` | *(none)* | List recipe books (collections) with recipe counts | -| `get_recipe_book` | `id` | Get recipe book details with ordered included recipes | -| `save_recipe_book` | `id?`, `name`, `description?`, `recipe_ids?` | Create or update a recipe book / collection | -| `export_database_backup` | *(none)* | Export complete JSON backup of all 25 SQLite tables | -| `get_database_stats` | *(none)* | Get table entity counts across the database | - ---- - -## 2. REST Web API Specification (`/api/v1/`) +## REST Web API Specification (`/api/v1/`) All REST endpoints return standard JSON envelopes: - Success: `{ "success": true, "data": ... }` diff --git a/docs/meez-recipe-edit-ui-audit.md b/docs/meez-recipe-edit-ui-audit.md new file mode 100644 index 0000000..d90a2fa --- /dev/null +++ b/docs/meez-recipe-edit-ui-audit.md @@ -0,0 +1,157 @@ +# meez Recipe Edit UI Audit + +Observed in the signed-in meez web application on August 20, 2026. The audit was read-only: edit mode was opened, temporary text was entered into quick add to inspect transient states, and the page was reloaded without saving. + +## Scope + +- Recipe view-to-edit transition +- Formula and prep-method layout +- Ingredient rows, section headings, notes, and quick add +- Primary actions, tabs, validation, drag affordances, and supporting details +- Desktop viewport observed at approximately 1041 × 669 CSS pixels + +## Overall composition + +- The workspace is a fixed two-pane desktop layout split close to 50/50. +- The left pane contains recipe identity, yield controls, percentage mode, and the ingredient formula. +- The right pane contains persistent recipe tabs and the active detail editor. In Prep Method, the cover image leads into steps and additional details. +- A slim vertical divider separates the panes. Both sides read as one continuous white document rather than cards inside a dashboard. +- A 48px global utility bar remains at the top. Entering edit mode changes the outlined `Edit` action into a green `Done` action without navigating away. + +## Visual language + +### Core tokens observed + +| Token | Observed value | Usage | +| --- | --- | --- | +| Primary ink | `rgb(5, 8, 65)` / `#050841` | Titles, body text, outlines | +| Action blue | `rgb(61, 93, 246)` / `#3d5df6` | New button, active/focus accents, links | +| Save green | `rgb(32, 171, 133)` / `#20ab85` | Done/save state | +| Muted gray | approximately `#a5a9c1` | Icons, placeholders, secondary labels | +| Canvas | `rgb(243, 243, 243)` | Application background outside editor surfaces | +| Surface | white | Both editor panes and input surfaces | +| Error | muted red/pink | Invalid ingredient cells and alert icons | +| Typeface | `CircularCustCapNum, sans-serif` | Entire application UI | + +Body typography is 16px, weight 300, with a 20px line height. The visual hierarchy comes from weight and spacing more than from large changes in size. + +### Type hierarchy + +- Recipe name: large, very bold, navy, edited inline with no boxed-input appearance. +- Pane title (`Prep Method`): 22px, weight 700, line height 33px. +- Formula/prep headings: 18px, weight 500, line height 27px. +- Ingredient and quick-add text: 15px, weight 300. +- Prep step text: 16px, weight 400, line height 25.6px. +- Supporting labels and table headers are smaller and muted. + +## View-to-edit behavior + +- View mode is clean and typographic. Ingredients appear as quantity/unit plus linked ingredient name and trailing note. +- Clicking `Edit` changes the same page in place; it does not replace the layout with a separate form. +- In edit mode: + - The recipe name becomes an inline textbox. + - Yield becomes quantity and searchable unit controls. + - Auto-calculate yield and percentage controls appear. + - Ingredient rows expose quantity, unit, ingredient/recipe, note, remove, and drag controls. + - Prep content becomes textareas in place. + - `Edit` becomes `Done`, using green as the commit signal. +- The right-side recipe tabs remain available while editing. + +## Formula editor + +### Column structure + +- Columns are `%`, `Qty`, `Unit`, and `Ingredient / Recipe`. +- Notes are displayed on a second line spanning most of the ingredient row rather than as a narrow permanent column. +- Rows use very light separators and white space. There are no rounded cards. +- Empty quantity/unit/reference cells show understated placeholders. + +### Section headings + +- Headings occupy a full-width row. +- Heading text is 18px/500 and left aligned. +- Remove and six-dot drag controls sit at the far right. +- The controls are visually quiet; the heading text carries the structure. + +### Ingredient notes + +- Notes are multiline textareas, even when they contain only one line. +- They sit beneath the main ingredient fields, use 15px light text, and have no visible box at rest. +- Observed textarea styling: transparent background, no border, approximately 27px line height, and light internal padding. +- Empty notes appear as italic/muted `Add Notes` prompts. + +### Validation and incomplete rows + +- Invalid or unresolved ingredient references tint the reference cell very pale pink. +- A thin red underline and a compact circular alert icon identify the exact failing field. +- Other cells remain neutral, keeping error scope local. +- Incomplete rows can remain in the editor while the user continues working. + +### Reordering and deletion + +- Section and ingredient rows expose a six-dot vertical drag handle. +- A circular minus icon is used for removal. +- These controls sit in a narrow action rail at the right edge of the formula pane. + +## Quick add + +- Quick add is a two-field row at the bottom of the formula: + - Ingredient parser/search: approximately 302 × 55px in the observed viewport. + - Note field: approximately 141 × 54px. +- The ingredient field has a subtle gray shadow; the note field is visually flatter. +- Both use 15px, weight 300 text with 16px × 10px padding. +- The parser accepts natural compact input such as `1cup onion sliced`. +- Keyboard guidance sits directly below the fields: + - `Enter to complete` + - `Tab to add a note` +- When text is present, a prompt appears immediately above the field: `Done? Press Enter to add this ingredient to the recipe`. +- Autocomplete opens upward because the control is at the bottom of the pane. +- Search results are compact list rows with an icon and truncated label. Different icon treatments distinguish catalog/source types. +- The focused field receives a pale blue background/focus treatment rather than a thick rounded outline. +- No-results feedback is announced separately while the typed value remains intact. + +## Add actions + +- `Add Header` and `Add Note` are blue text actions with leading plus icons. +- `Add Ingredients` is the stronger secondary action: transparent fill, navy 1px outline, 100px pill radius, 16px/500 text, 12px × 16px padding, approximately 40px tall. +- The hierarchy is deliberate: frequent lightweight structural additions are links; bulk import is a bordered button. + +## Prep Method editor + +- Prep Method remains in the right pane and is edited in place. +- The pane title includes a muted step count. +- Prep headings use the same full-width structural pattern as formula headings, including remove and drag controls. +- Steps are numbered in a narrow leading column. The instruction itself is a borderless multiline textarea. +- Observed prep textarea typography is 16px/400 with a 25.6px line height and 16px horizontal padding. +- Media upload appears below eligible steps as a quiet drag-and-drop region with file constraints. +- A blank next step is always available at the end, reducing the need for a separate single-step add action. +- `Add Header`, `Add Note`, and `Add Prep Steps` mirror the formula footer action hierarchy. + +## Additional details + +- Shelf life, station, tags, and owner follow the prep method in the same continuous pane. +- Shelf life uses paired quantity and unit fields. +- Station and tags are searchable comboboxes. +- Sections are separated by whitespace and thin rules, not enclosing cards. + +## Parity priorities for Formulation + +1. Preserve the two-pane information architecture, while keeping explicit structured controls for quantities, units, references, percentages, and validation. +2. Make notes second-line, borderless textareas under ingredient rows; do not treat notes as a permanent narrow table column. +3. Match the quick-add geometry, upward autocomplete, focus treatment, prompt placement, and keyboard sequence. +4. Use inline field-scoped validation: pale error background, thin red underline, and compact alert icon. +5. Unify formula and prep structural actions: heading, note, bulk add, drag, and remove should use the same interaction grammar. +6. Keep edit mode in place and make `Done` the single clear green commit action. +7. Use document-like editing selectively for headings, notes, and prep instructions. Reduce their card chrome while revealing clear boundaries on hover, focus, error, or incomplete state. +8. Keep a blank prep step available and allow multiline content without explicit textarea chrome. + +## Follow-up audits + +- Add Header and Add Note focus, commit, blur, empty-value, and deletion behavior +- Exact Enter/Tab selection behavior with existing ingredient, existing recipe, new ingredient, and new recipe +- Bulk ingredient and bulk prep dialogs +- Drag-and-drop feedback and keyboard accessibility +- Done/save validation, conflict, loading, and failure states +- Standard vs. Baker's percentage behavior +- Auto-yield recalculation states +- Responsive/tablet behavior diff --git a/migrations/001_initial.sql b/migrations/001_initial.sql index 5e6c87b..d8aaed6 100644 --- a/migrations/001_initial.sql +++ b/migrations/001_initial.sql @@ -125,7 +125,8 @@ CREATE TABLE purchase_items ( status TEXT NOT NULL, package_quantity REAL NOT NULL, package_unit_id TEXT NOT NULL REFERENCES units(id), units_per_case INTEGER NOT NULL DEFAULT 1, - usable_yield_factor REAL NOT NULL DEFAULT 1 + usable_yield_factor REAL NOT NULL DEFAULT 1, + deleted_at TEXT ); CREATE TABLE price_observations ( @@ -161,6 +162,41 @@ CREATE TABLE recipe_media ( FOREIGN KEY (recipe_id, step_id) REFERENCES recipe_steps(recipe_id, id) ON DELETE CASCADE ); +CREATE TABLE inventory_locations ( + id TEXT PRIMARY KEY, + name TEXT NOT NULL, + position INTEGER NOT NULL, + deleted_at TEXT +); + +CREATE TABLE inventory_counts ( + id TEXT PRIMARY KEY, + title TEXT NOT NULL, + counted_at TEXT NOT NULL, + status TEXT NOT NULL DEFAULT 'open', + notes TEXT, + created_at TEXT NOT NULL, + deleted_at TEXT +); + +CREATE TABLE inventory_count_items ( + count_id TEXT NOT NULL REFERENCES inventory_counts(id) ON DELETE CASCADE, + location_id TEXT REFERENCES inventory_locations(id), + ingredient_id TEXT NOT NULL REFERENCES ingredients(id), + quantity REAL NOT NULL, + unit_id TEXT NOT NULL REFERENCES units(id), + unit_cost REAL, + extended_cost REAL, + PRIMARY KEY (count_id, location_id, ingredient_id) +); + +INSERT INTO inventory_locations (id, name, position, deleted_at) VALUES + ('loc_walk_in', 'Walk-in Cooler', 1, NULL), + ('loc_dry_storage', 'Dry Storage', 2, NULL), + ('loc_freezer', 'Freezer', 3, NULL), + ('loc_bar', 'Bar & Service', 4, NULL), + ('loc_line', 'Prep Line', 5, NULL); + CREATE INDEX recipe_items_ingredient_idx ON recipe_items(ingredient_id); CREATE INDEX recipe_items_subrecipe_idx ON recipe_items(subrecipe_id); CREATE INDEX purchase_items_ingredient_idx ON purchase_items(ingredient_id); diff --git a/migrations/003_inventory.sql b/migrations/003_inventory.sql deleted file mode 100644 index 138c9f5..0000000 --- a/migrations/003_inventory.sql +++ /dev/null @@ -1,37 +0,0 @@ -PRAGMA foreign_keys = ON; - -CREATE TABLE IF NOT EXISTS inventory_locations ( - id TEXT PRIMARY KEY, - name TEXT NOT NULL, - position INTEGER NOT NULL, - deleted_at TEXT -); - -CREATE TABLE IF NOT EXISTS inventory_counts ( - id TEXT PRIMARY KEY, - title TEXT NOT NULL, - counted_at TEXT NOT NULL, - status TEXT NOT NULL DEFAULT 'open', - notes TEXT, - created_at TEXT NOT NULL, - deleted_at TEXT -); - -CREATE TABLE IF NOT EXISTS inventory_count_items ( - count_id TEXT NOT NULL REFERENCES inventory_counts(id) ON DELETE CASCADE, - location_id TEXT REFERENCES inventory_locations(id), - ingredient_id TEXT NOT NULL REFERENCES ingredients(id), - quantity REAL NOT NULL, - unit_id TEXT NOT NULL REFERENCES units(id), - unit_cost REAL, - extended_cost REAL, - PRIMARY KEY (count_id, location_id, ingredient_id) -); - --- Seed baseline standard locations if table is empty -INSERT OR IGNORE INTO inventory_locations (id, name, position, deleted_at) VALUES - ('loc_walk_in', 'Walk-in Cooler', 1, NULL), - ('loc_dry_storage', 'Dry Storage', 2, NULL), - ('loc_freezer', 'Freezer', 3, NULL), - ('loc_bar', 'Bar & Service', 4, NULL), - ('loc_line', 'Prep Line', 5, NULL); diff --git a/migrations/004_archive_parity.sql b/migrations/004_archive_parity.sql deleted file mode 100644 index 444a125..0000000 --- a/migrations/004_archive_parity.sql +++ /dev/null @@ -1,2 +0,0 @@ --- Soft delete parity for purchase items -ALTER TABLE purchase_items ADD COLUMN deleted_at TEXT; diff --git a/package-lock.json b/package-lock.json index fdfd5ae..7bd4cd9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "dependencies": { "@astrojs/node": "^11.1.1", "@astrojs/preact": "6.0.2", - "@modelcontextprotocol/sdk": "^1.30.0", "astro": "7.2.1", "preact": "10.29.8", "yaml": "2.9.0", @@ -1274,18 +1273,6 @@ "node": ">=18" } }, - "node_modules/@hono/node-server": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.1.tgz", - "integrity": "sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "hono": "^4" - } - }, "node_modules/@img/colour": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", @@ -1800,46 +1787,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", - "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==", - "license": "MIT", - "dependencies": { - "@hono/node-server": "^1.19.9 || ^2.0.5", - "ajv": "^8.17.1", - "ajv-formats": "^3.0.1", - "content-type": "^1.0.5", - "cors": "^2.8.5", - "cross-spawn": "^7.0.5", - "eventsource": "^3.0.2", - "eventsource-parser": "^3.0.0", - "express": "^5.2.1", - "express-rate-limit": "^8.2.1", - "hono": "^4.11.4", - "jose": "^6.1.3", - "json-schema-typed": "^8.0.2", - "pkce-challenge": "^5.0.0", - "raw-body": "^3.0.0", - "zod": "^3.25 || ^4.0", - "zod-to-json-schema": "^3.25.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@cfworker/json-schema": "^4.1.1", - "zod": "^3.25 || ^4.0" - }, - "peerDependenciesMeta": { - "@cfworker/json-schema": { - "optional": true - }, - "zod": { - "optional": false - } - } - }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", @@ -2595,23 +2542,11 @@ "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", "dev": true }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/ajv": { "version": "8.20.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2637,23 +2572,6 @@ } } }, - "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/ajv-i18n": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/ajv-i18n/-/ajv-i18n-4.2.0.tgz", @@ -2869,43 +2787,6 @@ "node": ">=6.0.0" } }, - "node_modules/body-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", - "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^2.0.0", - "debug": "^4.4.3", - "http-errors": "^2.0.1", - "iconv-lite": "^0.7.2", - "on-finished": "^2.4.1", - "qs": "^6.15.2", - "raw-body": "^3.0.2", - "type-is": "^2.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/body-parser/node_modules/content-type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -2943,44 +2824,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001809", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", @@ -3203,28 +3046,6 @@ "node": ">= 18" } }, - "node_modules/content-disposition": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3247,46 +3068,6 @@ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==" }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, - "node_modules/cors": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", - "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/crossws": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", @@ -3508,20 +3289,6 @@ "node": ">=4" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3561,41 +3328,11 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-module-lexer": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==" }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/esbuild": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", @@ -3667,27 +3404,6 @@ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==" }, - "node_modules/eventsource": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", - "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", - "license": "MIT", - "dependencies": { - "eventsource-parser": "^3.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/eventsource-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", - "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/expect-type": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", @@ -3697,77 +3413,6 @@ "node": ">=12.0.0" } }, - "node_modules/express": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.1", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "depd": "^2.0.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express-rate-limit": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.2.tgz", - "integrity": "sha512-YH4ru+eOJxQABscKFfRCy9R7x9QFGdezclVMwwgFFndzS2Xnm0uo6B0ABZsLhcpeptGv2qvuJVWlQr9gQZoC3A==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.3", - "ip-address": "^10.2.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": ">= 4.11" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -3776,7 +3421,8 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-string-truncated-width": { "version": "3.0.3", @@ -3795,6 +3441,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", + "dev": true, "funding": [ { "type": "github", @@ -3830,27 +3477,6 @@ } } }, - "node_modules/finalhandler": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/flattie": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", @@ -3878,15 +3504,6 @@ "node": ">=20" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", @@ -3908,15 +3525,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3934,43 +3542,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/get-tsconfig": { "version": "5.0.0-beta.4", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", @@ -3990,18 +3561,6 @@ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/h3": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", @@ -4018,30 +3577,6 @@ "uncrypto": "^0.1.3" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/hast-util-from-html": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", @@ -4148,15 +3683,6 @@ "he": "bin/he" } }, - "node_modules/hono": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.2.tgz", - "integrity": "sha512-JydRilDRkYBQMt9qR9U92mXxmbGqsqSn/IKOrh4e7/gEbn+0zSr8igTu0obwJoNGN4sez28DIql7FBHWydoJpA==", - "license": "MIT", - "engines": { - "node": ">=16.9.0" - } - }, "node_modules/html-escaper": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", @@ -4195,45 +3721,11 @@ "url": "https://opencollective.com/express" } }, - "node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/ip-address": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz", - "integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/iron-webcrypto": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", @@ -4276,27 +3768,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/jose": { - "version": "6.2.9", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.9.tgz", - "integrity": "sha512-XrchZOFZUl/T3vTwRe8XK+cJrGtMF4th1ARnDfwbBXFKThGhlsxEE4Zu03AD/bjJSt/9jT/mxrOCkJWOg77aPA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4337,13 +3808,8 @@ "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json-schema-typed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", - "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", - "license": "BSD-2-Clause" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/json5": { "version": "2.2.3", @@ -4639,15 +4105,6 @@ "source-map-js": "^1.2.1" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/mdast-util-to-hast": { "version": "13.2.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", @@ -4673,31 +4130,6 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==" }, - "node_modules/media-typer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", - "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", @@ -4841,15 +4273,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/neotraverse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", @@ -4916,27 +4339,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/obug": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", @@ -4975,15 +4377,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/oniguruma-parser": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", @@ -5055,40 +4448,12 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-to-regexp": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -5116,15 +4481,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkce-challenge": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", - "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", - "license": "MIT", - "engines": { - "node": ">=16.20.0" - } - }, "node_modules/postcss": { "version": "8.5.26", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", @@ -5217,35 +4573,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.15.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", - "license": "BSD-3-Clause", - "dependencies": { - "es-define-property": "^1.0.1", - "side-channel": "^1.1.1" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/radix3": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", @@ -5263,21 +4590,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/raw-body": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.7.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -5331,6 +4643,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5388,28 +4701,6 @@ "@rolldown/binding-win32-x64-msvc": "1.2.3" } }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, "node_modules/satteri": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.9.5.tgz", @@ -5473,25 +4764,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/serve-static": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/server-destroy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", @@ -5563,27 +4835,6 @@ "node": ">=10" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/shiki": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.4.3.tgz", @@ -5602,78 +4853,6 @@ "node": ">=20" } }, - "node_modules/side-channel": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4", - "side-channel-list": "^1.0.1", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -5877,37 +5056,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "optional": true }, - "node_modules/type-is": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", - "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", - "license": "MIT", - "dependencies": { - "content-type": "^2.0.0", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/type-is/node_modules/content-type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/typesafe-path": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", @@ -6060,15 +5208,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/unstorage": { "version": "1.17.5", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", @@ -6227,15 +5366,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", @@ -6758,21 +5888,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", @@ -6789,12 +5904,6 @@ "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, "node_modules/xxhash-wasm": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", @@ -6965,15 +6074,6 @@ "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/zod-to-json-schema": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", - "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", - "license": "ISC", - "peerDependencies": { - "zod": "^3.25.28 || ^4" - } - }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 4467233..38485da 100644 --- a/package.json +++ b/package.json @@ -23,12 +23,11 @@ "db:restore": "node scripts/backup.mjs import", "db:reset": "node scripts/backup.mjs import data/recipe-book-backup.json", "db:validate": "node scripts/backup.mjs validate", - "mcp": "node scripts/mcp-server.mjs" + "db:migrate-recipe-ids": "node scripts/migrate-recipe-ids.mjs" }, "dependencies": { "@astrojs/node": "^11.1.1", "@astrojs/preact": "6.0.2", - "@modelcontextprotocol/sdk": "^1.30.0", "astro": "7.2.1", "preact": "10.29.8", "yaml": "2.9.0", diff --git a/scripts/backup.mjs b/scripts/backup.mjs index 963fd59..0c95378 100644 --- a/scripts/backup.mjs +++ b/scripts/backup.mjs @@ -8,7 +8,6 @@ const root = path.resolve(import.meta.dirname, ".."); const databasePath = path.join(root, "var", "recipe-book.sqlite"); const defaultSeedPath = path.join(root, "data", "recipe-book-backup.json"); -// Dynamically import compiled or source backup engine import { exportDatabase } from "../src/lib/backup/export-database.ts"; import { importDatabase } from "../src/lib/backup/import-database.ts"; import { validateBackupBundle } from "../src/lib/backup/validate-backup.ts"; diff --git a/scripts/ingest-docling-book.mjs b/scripts/ingest-docling-book.mjs index 23984fb..e6e607d 100644 --- a/scripts/ingest-docling-book.mjs +++ b/scripts/ingest-docling-book.mjs @@ -1,18 +1,4 @@ #!/usr/bin/env node -/** - * Advanced Docling Recipe Ingestor for "The Pastry Chef's Little Black Book, Vol. I" - * - * Supports: - * - 2-page facing spreads (Table on Left, Procedure on Right) - * - Multi-component formulation splitting (Dough Packet, Butter Packet, Filling, Crust) - * - Fractional spoon & unit fallbacks across all columns - * - Multi-stage procedure preservation with equipment inference - * - Shelf-life & chef's notes extraction - * - * Usage: - * node scripts/ingest-docling-book.mjs --dry-run --pages 26-27 - * node scripts/ingest-docling-book.mjs --save - */ import fs from "node:fs"; import path from "node:path"; import { DatabaseSync } from "node:sqlite"; @@ -22,9 +8,6 @@ const root = path.resolve(import.meta.dirname, ".."); const databasePath = path.join(root, "var", "recipe-book.sqlite"); const doclingPath = path.join(root, "file.json"); -// --------------------------------------------------------------------------- -// Table of Contents Chapter Ranges -// --------------------------------------------------------------------------- export const CHAPTER_PAGE_RANGES = [ { name: "Doughs", startPage: 11, endPage: 38, category: "doughs" }, { name: "Tart, Pie & Strudel Fillings", startPage: 39, endPage: 64, category: "tart_pie_fillings" }, @@ -48,9 +31,6 @@ export function getChapterForPage(pageNo) { return { name: "General Pastry", category: "pastry" }; } -// --------------------------------------------------------------------------- -// Extended Ingredient Normalization Map -// --------------------------------------------------------------------------- const KNOWN_INGREDIENT_MAP = { "butter": "butter", "unsalted butter": "butter", @@ -196,7 +176,7 @@ function slugify(text) { function parseMetricAmount(str) { if (!str) return null; const s = str.trim().toLowerCase(); - + const kgMatch = s.match(/^([\d.,]+)\s*kg$/i); if (kgMatch) { return { quantity: Math.round(parseFloat(kgMatch[1].replace(/,/g, "")) * 1000 * 100) / 100, unit_id: "gram" }; @@ -251,7 +231,7 @@ function parseUsFallback(text, name) { if (s.includes("2 t")) return { quantity: 10, unit_id: "gram", notes: "2 tsp" }; if (s.includes("1 t") && !s.includes("tbsp")) return { quantity: 5, unit_id: "gram", notes: "1 tsp" }; if (s.includes("tbsp") || s.includes("1 t") || s.includes("2 t")) return { quantity: 15, unit_id: "gram", notes: "1 Tbsp" }; - + const eachMatch = s.match(/^([\d.]+)\s*(?:each|pc|ea)?$/); if (eachMatch && parseFloat(eachMatch[1]) > 0) return { quantity: parseFloat(eachMatch[1]), unit_id: "each", notes: null }; @@ -352,9 +332,6 @@ function parseShelfLife(notesList) { return null; } -// --------------------------------------------------------------------------- -// Page & Recipe Extractor -// --------------------------------------------------------------------------- export function parseDoclingBook(doclingJson, targetPages = null) { const pagesMap = new Map(); @@ -406,7 +383,6 @@ export function parseDoclingBook(doclingJson, targetPages = null) { const isIngredientTable = headerRow && [...headerRow.values()].some((v) => /ingredients/i.test(v)); if (!isIngredientTable) continue; - // Find Recipe Title on this page const titleNode = page.texts.find( (t) => t.label === "section_header" && !/procedure|chef's notes|notes|table of contents|scaling|baking/i.test(t.text) ); @@ -420,7 +396,6 @@ export function parseDoclingBook(doclingJson, targetPages = null) { usedSlugs.set(slugId, 1); } - // Parse ingredients into components const components = []; let currentComponent = { id: "main", name: "Main", items: [] }; components.push(currentComponent); @@ -443,7 +418,6 @@ export function parseDoclingBook(doclingJson, targetPages = null) { if (!ingText) continue; - // Detect sub-component headers inside tables like "Dough Packet (Détrempe):" or "Filling:" if (ingText.endsWith(":") && !metricText && !usText) { const compName = ingText.replace(/:$/, "").trim(); const compSlug = slugify(compName); @@ -490,11 +464,9 @@ export function parseDoclingBook(doclingJson, targetPages = null) { }); } - // Filter out empty components const validComponents = components.filter((c) => c.items.length > 0); if (validComponents.length === 0) continue; - // Calculate Baker's Percentages across all components const allItems = validComponents.flatMap((c) => c.items); const flourBasisWeight = allItems .filter((i) => i.basis_member) @@ -523,7 +495,6 @@ export function parseDoclingBook(doclingJson, targetPages = null) { }), })); - // Find procedure steps on current page or facing spread page (pageNo + 1) const textSources = [...page.texts]; const nextPage = pagesMap.get(pageNo + 1); if (nextPage && nextPage.tables.length === 0) { @@ -569,7 +540,7 @@ function cleanProcedureHeader(raw) { for (const textNode of textSources) { const text = textNode.text.trim(); - + if (/^yields?:\s*/i.test(text)) { yieldDescription = text; continue; @@ -656,9 +627,6 @@ function cleanProcedureHeader(raw) { return recipes; } -// --------------------------------------------------------------------------- -// Batch Ingestion Runner -// --------------------------------------------------------------------------- async function main() { const args = process.argv.slice(2); const isSave = args.includes("--save"); @@ -684,7 +652,6 @@ async function main() { const recipes = parseDoclingBook(doc, targetPages); console.log(`\nFound ${recipes.length} formulation(s).`); - // Detailed inspect for targeted page runs if (targetPages && targetPages.length <= 5) { for (const recipe of recipes) { console.log(`\n================================================================`); @@ -727,10 +694,10 @@ async function main() { if (isSave) { console.log(`\n💾 Ingesting ${recipes.length} recipes into Formulation database...`); - const { createMcpTools } = await import("../src/mcp/tools.ts"); + const { createDomainTools } = await import("../src/lib/domain-tools.ts"); const { openDatabase, refreshSiteProjection } = await import("../src/lib/database.ts"); const db = openDatabase({ readOnly: false }); - const tools = createMcpTools(() => db); + const tools = createDomainTools(() => db); try { let newIngredientsCount = 0; @@ -761,7 +728,6 @@ async function main() { } } - // Update or create Master Collection if (!targetPages) { const collectionId = "the_pastry_chefs_little_black_book_vol_1"; tools.saveRecipeBook({ diff --git a/scripts/lint-recipe-instructions.mjs b/scripts/lint-recipe-instructions.mjs index d66adf7..00c248e 100644 --- a/scripts/lint-recipe-instructions.mjs +++ b/scripts/lint-recipe-instructions.mjs @@ -42,19 +42,15 @@ function standardizeInstruction(text) { let clean = text.trim(); if (!clean) return clean; - // Check if it's an inline note: (Note: ...) or (...) if (clean.startsWith("(") && clean.endsWith(")")) { return clean; } - // Check if it's a section heading: ends with colon if (clean.endsWith(":")) { - // Capitalize first character clean = clean.charAt(0).toUpperCase() + clean.slice(1); return clean; } - // Check for common gerund starts const words = clean.split(/\s+/); const firstWordLower = words[0].toLowerCase(); if (gerundMap[firstWordLower]) { @@ -62,13 +58,10 @@ function standardizeInstruction(text) { clean = words.join(" "); } - // Capitalize first letter clean = clean.charAt(0).toUpperCase() + clean.slice(1); - // Replace trailing comma, semicolon, or dash with period clean = clean.replace(/[,;\-\s]+$/, ""); - // Ensure terminal punctuation if not ending with : or ) if (!clean.endsWith(".") && !clean.endsWith("!") && !clean.endsWith("?") && !clean.endsWith(":") && !clean.endsWith(")")) { clean += "."; } diff --git a/scripts/mcp-server.mjs b/scripts/mcp-server.mjs deleted file mode 100644 index 52a5fee..0000000 --- a/scripts/mcp-server.mjs +++ /dev/null @@ -1,335 +0,0 @@ -#!/usr/bin/env node -/** - * Formulation MCP Server — standalone stdio entry point. - * - * This script opens the SQLite database directly (bypassing Astro runtime) - * and starts the Model Context Protocol server on stdin/stdout. - * - * Usage: - * node scripts/mcp-server.mjs - * npm run mcp - */ -import fs from "node:fs"; -import path from "node:path"; -import { DatabaseSync } from "node:sqlite"; -import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; -import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; -import { z } from "zod"; -import { createSiteProjection } from "./lib/site-projection.mjs"; - -// --------------------------------------------------------------------------- -// Database helpers (standalone, no Astro dependency) -// --------------------------------------------------------------------------- -const root = path.resolve(import.meta.dirname, ".."); -const databasePath = path.join(root, "var", "recipe-book.sqlite"); - -function openDb(readOnly = true) { - if (!fs.existsSync(databasePath)) throw new Error(`Database not found at ${databasePath}`); - const db = new DatabaseSync(databasePath, { readOnly }); - db.exec("PRAGMA foreign_keys = ON"); - return db; -} - -function loadCatalogs() { - const db = openDb(true); - try { - const projection = createSiteProjection(db); - const map = (values) => new Map(values.map((v) => [v.id, v])); - return { - ingredients: map(projection.ingredients), - recipes: map(projection.recipes), - units: map(projection.units), - equipment: map(projection.equipment), - prepActions: map(projection.prepActions), - purchaseItems: map(projection.purchaseItems), - sourceMappings: map(projection.sourceMappings), - }; - } finally { - db.close(); - } -} - -// --------------------------------------------------------------------------- -// Dynamic imports for domain modules (TypeScript, processed by Node's ESM) -// --------------------------------------------------------------------------- -const { calculateCost } = await import("../src/lib/costing.ts"); -const { calculateNutrition } = await import("../src/lib/nutrition.ts"); -const { convert, convertWithIngredientMeasures } = await import("../src/lib/measurement.ts"); -const { exportDatabase } = await import("../src/lib/backup/export-database.ts"); -const { titleCase } = await import("../src/lib/format.ts"); -const { getInventoryCountDetail, getInventoryCounts } = await import("../src/lib/repository/inventory-repository.ts"); -const { recipeQualityRows, restoreArchivedItems } = await import("../src/lib/database.ts"); - -// --------------------------------------------------------------------------- -// Tool implementations -// --------------------------------------------------------------------------- -function searchRecipes(args) { - const catalogs = loadCatalogs(); - const q = (args.query ?? "").trim().toLowerCase(); - const limit = Math.min(Math.max(args.limit ?? 25, 1), 100); - let results = [...catalogs.recipes.values()]; - - if (q) results = results.filter((r) => r.title.toLowerCase().includes(q) || r.id.toLowerCase().includes(q) || (r.summary ?? "").toLowerCase().includes(q)); - if (args.category) results = results.filter((r) => r.categories.includes(args.category)); - if (args.tag) results = results.filter((r) => (r.tags ?? []).includes(args.tag)); - - return results.slice(0, limit).map((r) => ({ - id: r.id, title: r.title, summary: r.summary ?? null, - categories: r.categories, tags: r.tags, - yield: { quantity: r.yield.amount.quantity, unit_id: r.yield.amount.unit_id, servings: r.yield.servings ?? null }, - component_count: r.components.length, - item_count: r.components.reduce((n, c) => n + c.items.length, 0), - step_count: r.steps.length, - })); -} - -function getRecipe(args) { - const catalogs = loadCatalogs(); - const recipe = catalogs.recipes.get(args.id); - if (!recipe) throw new Error(`Recipe not found: ${args.id}`); - - let sf = 1; - if (args.scale_factor > 0) sf = args.scale_factor; - else if (args.target_yield > 0 && recipe.yield.amount.quantity > 0) { - if (args.target_yield_unit && args.target_yield_unit !== recipe.yield.amount.unit_id) { - try { sf = convert(args.target_yield, args.target_yield_unit, recipe.yield.amount.unit_id, catalogs.units) / recipe.yield.amount.quantity; } catch { sf = args.target_yield / recipe.yield.amount.quantity; } - } else sf = args.target_yield / recipe.yield.amount.quantity; - } - - return { - id: recipe.id, title: recipe.title, summary: recipe.summary ?? null, - categories: recipe.categories, tags: recipe.tags, station: recipe.station ?? null, - yield: { quantity: recipe.yield.amount.quantity * sf, base_quantity: recipe.yield.amount.quantity, unit_id: recipe.yield.amount.unit_id, servings: recipe.yield.servings ? recipe.yield.servings * sf : null, basis: recipe.yield.basis ?? null }, - scale_factor: sf, scaling: recipe.scaling ?? null, - components: recipe.components.map((c) => ({ - id: c.id, name: c.name, notes: c.notes ?? [], - items: c.items.map((item) => { - const ref = item.reference; - const isSub = "recipe_id" in ref; - const sid = isSub ? ref.recipe_id : ref.ingredient_id; - const subject = isSub ? catalogs.recipes.get(sid) : catalogs.ingredients.get(sid); - return { - id: item.id, - ingredient_id: isSub ? undefined : sid, - subrecipe_id: isSub ? sid : undefined, - name: subject ? (isSub ? subject.title : titleCase(subject.name)) : sid, - is_subrecipe: isSub, - quantity: item.amount.quantity * sf, - base_quantity: item.amount.quantity, - unit_id: item.amount.unit_id, - percentage: item.percentage ?? null, - basis_member: item.basis_member ?? false, - optional: item.optional ?? false, - notes: item.notes ?? null, - prep: item.prep ?? [], - }; - }), - })), - steps: recipe.steps.map((s, i) => ({ id: s.id, order: i + 1, instruction: s.instruction, critical_control_point: s.critical_control_point ?? false, equipment_ids: s.equipment_ids ?? [] })), - equipment_ids: recipe.equipment_ids ?? [], - notes: recipe.notes ?? [], - shelf_life: recipe.shelf_life ?? null, - }; -} - -function calcCost(args) { - const catalogs = loadCatalogs(); - const recipe = catalogs.recipes.get(args.recipe_id); - if (!recipe) throw new Error(`Recipe not found: ${args.recipe_id}`); - return calculateCost(recipe, { recipes: catalogs.recipes, ingredients: catalogs.ingredients, units: catalogs.units, purchaseItems: catalogs.purchaseItems, prepActions: catalogs.prepActions }, args.currency ?? "USD"); -} - -function calcNutrition(args) { - const catalogs = loadCatalogs(); - const recipe = catalogs.recipes.get(args.recipe_id); - if (!recipe) throw new Error(`Recipe not found: ${args.recipe_id}`); - return calculateNutrition(recipe, { recipes: catalogs.recipes, ingredients: catalogs.ingredients, units: catalogs.units, mappings: catalogs.sourceMappings }); -} - -function searchIngredients(args) { - const catalogs = loadCatalogs(); - const q = (args.query ?? "").trim().toLowerCase(); - const limit = Math.min(Math.max(args.limit ?? 25, 1), 100); - let results = [...catalogs.ingredients.values()]; - - if (q) results = results.filter((ing) => ing.name.toLowerCase().includes(q) || ing.id.toLowerCase().includes(q) || (ing.aliases ?? []).some((a) => a.name.toLowerCase().includes(q))); - if (args.category) results = results.filter((ing) => ing.categories.includes(args.category)); - if (args.missing_cost) { - const priced = new Set([...catalogs.purchaseItems.values()].filter((pi) => pi.status === "active").map((pi) => pi.ingredient_id)); - results = results.filter((ing) => !priced.has(ing.id)); - } - - return results.slice(0, limit).map((ing) => ({ - id: ing.id, name: titleCase(ing.name), status: ing.status, categories: ing.categories, - alias_count: (ing.aliases ?? []).length, - has_nutrition: (ing.nutrition_mapping_ids ?? []).length > 0, - has_cost: [...catalogs.purchaseItems.values()].some((pi) => pi.ingredient_id === ing.id && pi.status === "active"), - })); -} - -function getIngredientDetail(args) { - const catalogs = loadCatalogs(); - const ing = catalogs.ingredients.get(args.id); - if (!ing) throw new Error(`Ingredient not found: ${args.id}`); - const purchases = [...catalogs.purchaseItems.values()].filter((pi) => pi.ingredient_id === args.id); - return { - id: ing.id, name: titleCase(ing.name), raw_name: ing.name, status: ing.status, - categories: ing.categories, tags: ing.tags ?? [], aliases: ing.aliases ?? [], - density_measurements: (ing.density_measurements ?? []).map((d) => ({ id: d.id, mass: d.mass, volume: d.volume, state: d.state ?? null })), - measure_conversions: (ing.measure_conversions ?? []).map((c) => ({ id: c.id, from: c.from, to: c.to, state: c.state ?? null })), - prep_actions: ing.prep_actions ?? [], - nutrition_mapping_ids: ing.nutrition_mapping_ids ?? [], - purchase_items: purchases.map((p) => ({ id: p.id, name: p.name, brand: p.brand ?? null, status: p.status, package_quantity: p.package.quantity, package_unit_id: p.package.unit_id, latest_price: p.prices.length > 0 ? p.prices[p.prices.length - 1].amount : null, currency: p.prices.length > 0 ? p.prices[p.prices.length - 1].currency : null })), - }; -} - -function convertUnits(args) { - const catalogs = loadCatalogs(); - const units = catalogs.units; - const fromUnit = units.get(args.from_unit); - const toUnit = units.get(args.to_unit); - if (!fromUnit) throw new Error(`Unknown unit: ${args.from_unit}`); - if (!toUnit) throw new Error(`Unknown unit: ${args.to_unit}`); - - let result, method; - if (fromUnit.dimension === toUnit.dimension) { - result = convert(args.quantity, args.from_unit, args.to_unit, units); - method = "dimension_conversion"; - } else if (args.ingredient_id) { - const ing = catalogs.ingredients.get(args.ingredient_id); - if (!ing) throw new Error(`Unknown ingredient: ${args.ingredient_id}`); - const converted = convertWithIngredientMeasures({ quantity: args.quantity, unit_id: args.from_unit }, args.to_unit, ing, units); - result = converted.quantity; - method = "ingredient_measure_conversion"; - } else { - throw new Error(`Cannot convert ${fromUnit.dimension} to ${toUnit.dimension} without an ingredient_id for density lookup.`); - } - return { from: { quantity: args.quantity, unit_id: args.from_unit }, to: { quantity: result, unit_id: args.to_unit }, ingredient_id: args.ingredient_id ?? null, method }; -} - -function listUnits(args) { - const catalogs = loadCatalogs(); - let units = [...catalogs.units.values()]; - if (args?.dimension) units = units.filter((u) => u.dimension === args.dimension); - if (args?.system) units = units.filter((u) => u.system === args.system); - return units; -} - -function listEquipment(args) { - const catalogs = loadCatalogs(); - let items = [...catalogs.equipment.values()]; - if (args?.category) items = items.filter((e) => e.category === args.category); - return items; -} - -function listPrepActions() { - const catalogs = loadCatalogs(); - return [...catalogs.prepActions.values()]; -} - -function listPurchaseItems(args) { - const db = openDb(true); - try { - let query = ` - SELECT p.id, p.ingredient_id, i.name as ingredient_name, p.name, p.brand, - p.supplier_id, p.supplier_sku, p.status, p.package_quantity, p.package_unit_id, - p.units_per_case, p.usable_yield_factor - FROM purchase_items p - JOIN ingredients i ON i.id = p.ingredient_id - WHERE p.deleted_at IS NULL - `; - const params = []; - if (args.ingredient_id) { query += " AND p.ingredient_id = ?"; params.push(args.ingredient_id); } - if (args.status) { query += " AND p.status = ?"; params.push(args.status); } - query += " ORDER BY p.name LIMIT ?"; - params.push(Math.min(Math.max(args.limit ?? 50, 1), 200)); - - const rows = db.prepare(query).all(...params); - const priceStmt = db.prepare("SELECT amount, currency, effective_at FROM price_observations WHERE purchase_item_id = ? ORDER BY effective_at DESC LIMIT 1"); - return rows.map((r) => { - const p = priceStmt.get(r.id); - return { ...r, ingredient_name: titleCase(r.ingredient_name), latest_price: p?.amount ?? null, currency: p?.currency ?? null }; - }); - } finally { db.close(); } -} - -function getDatabaseStats() { - const db = openDb(true); - try { - const c = (t) => db.prepare(`SELECT count(*) as c FROM ${t}`).get().c; - return { recipes: c("recipes"), ingredients: c("ingredients"), units: c("units"), equipment: c("equipment"), purchase_items: c("purchase_items"), collections: c("collections"), inventory_counts: c("inventory_counts") }; - } finally { db.close(); } -} - -function listRecipeBooks() { - const db = openDb(true); - try { - return db.prepare( - `SELECT c.id, c.name, c.description, COUNT(cr.recipe_id) as recipe_count - FROM collections c LEFT JOIN collection_recipes cr ON cr.collection_id = c.id - WHERE c.deleted_at IS NULL GROUP BY c.id ORDER BY c.name` - ).all(); - } finally { db.close(); } -} - -function getRecipeBook(args) { - const db = openDb(true); - try { - const book = db.prepare("SELECT id, name, description FROM collections WHERE id = ? AND deleted_at IS NULL").get(args.id); - if (!book) throw new Error(`Recipe book not found: ${args.id}`); - const recipes = db.prepare( - `SELECT r.id, r.title, r.summary, cr.position - FROM collection_recipes cr JOIN recipes r ON r.id = cr.recipe_id - WHERE cr.collection_id = ? AND r.deleted_at IS NULL ORDER BY cr.position, r.title` - ).all(args.id); - return { ...book, recipes }; - } finally { db.close(); } -} - -function auditQuality() { - const db = openDb(true); - try { - const rows = recipeQualityRows(db); - const clean = rows.filter((r) => r.placeholder_steps === 0 && r.unpriced_items === 0 && r.yield_basis !== null).length; - return { summary: { total: rows.length, clean, needs_attention: rows.length - clean }, recipes: rows }; - } finally { db.close(); } -} - -// --------------------------------------------------------------------------- -// MCP Server setup -// --------------------------------------------------------------------------- -const server = new McpServer({ name: "formulation", version: "2.0.0" }); - -function wrap(fn) { - return async (args) => { - try { - const result = fn(args); - return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; - } catch (err) { - return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true }; - } - }; -} - -server.tool("search_recipes", "Search recipes by keyword, category, or tag.", { query: z.string().optional(), category: z.string().optional(), tag: z.string().optional(), limit: z.number().int().min(1).max(100).default(25) }, wrap(searchRecipes)); -server.tool("get_recipe", "Get full recipe formulation with optional scaling.", { id: z.string(), scale_factor: z.number().positive().optional(), target_yield: z.number().positive().optional(), target_yield_unit: z.string().optional() }, wrap(getRecipe)); -server.tool("audit_recipe_quality", "Run automated quality audit on all recipes.", {}, wrap(auditQuality)); -server.tool("calculate_recipe_cost", "Compute itemized cost breakdown for a recipe.", { recipe_id: z.string(), currency: z.string().default("USD") }, wrap(calcCost)); -server.tool("calculate_recipe_nutrition", "Calculate nutrition facts per 100g and per serving.", { recipe_id: z.string(), serving_size_g: z.number().positive().optional() }, wrap(calcNutrition)); -server.tool("search_ingredients", "Search ingredients with cost/nutrition status.", { query: z.string().optional(), category: z.string().optional(), missing_cost: z.boolean().optional(), limit: z.number().int().min(1).max(100).default(25) }, wrap(searchIngredients)); -server.tool("get_ingredient", "Get ingredient detail with density, equivalencies, and prices.", { id: z.string() }, wrap(getIngredientDetail)); -server.tool("list_purchase_items", "List purchase items with current prices.", { ingredient_id: z.string().optional(), status: z.string().optional(), limit: z.number().int().default(50) }, wrap(listPurchaseItems)); -server.tool("convert_units", "Convert culinary units using ingredient density data.", { ingredient_id: z.string().optional(), quantity: z.number().positive(), from_unit: z.string(), to_unit: z.string() }, wrap(convertUnits)); -server.tool("list_units", "List measurement units with conversion factors.", { dimension: z.string().optional(), system: z.string().optional() }, wrap(listUnits)); -server.tool("list_equipment", "List kitchen equipment.", { category: z.string().optional() }, wrap(listEquipment)); -server.tool("list_prep_actions", "List culinary prep actions.", {}, wrap(listPrepActions)); -server.tool("list_inventory_counts", "List inventory counting sessions.", { status: z.enum(["all", "open", "completed"]).default("all") }, wrap((args) => { const db = openDb(true); try { let counts = getInventoryCounts(db); if (args.status !== "all") counts = counts.filter((c) => c.status === args.status); return counts; } finally { db.close(); } })); -server.tool("get_inventory_count", "Get full inventory count sheet with items and valuations.", { id: z.string() }, wrap((args) => { const db = openDb(true); try { const d = getInventoryCountDetail(db, args.id); if (!d) throw new Error(`Count not found: ${args.id}`); return d; } finally { db.close(); } })); -server.tool("list_recipe_books", "List recipe books with recipe counts.", {}, wrap(listRecipeBooks)); -server.tool("get_recipe_book", "Get recipe book detail with included recipes.", { id: z.string() }, wrap(getRecipeBook)); -server.tool("export_database_backup", "Export complete JSON backup of all 25 tables.", {}, wrap(() => { const db = openDb(true); try { return exportDatabase(db); } finally { db.close(); } })); -server.tool("get_database_stats", "Get entity count statistics.", {}, wrap(getDatabaseStats)); - -const transport = new StdioServerTransport(); -await server.connect(transport); -console.error("Formulation MCP Server running on stdio"); diff --git a/scripts/migrate-recipe-ids.mjs b/scripts/migrate-recipe-ids.mjs new file mode 100644 index 0000000..ecae7ad --- /dev/null +++ b/scripts/migrate-recipe-ids.mjs @@ -0,0 +1,103 @@ +#!/usr/bin/env node +import path from "node:path"; +import { randomBytes } from "node:crypto"; +import { DatabaseSync } from "node:sqlite"; +import { writeSiteProjection } from "./lib/site-projection.mjs"; + +const alphabet = "0123456789abcdefghjkmnpqrstvwxyz"; +const recipeIdPattern = /^[0-9a-hjkmnp-tv-z]{26}$/; + +function encode(value, length) { + let output = ""; + for (let index = 0; index < length; index += 1) { + output = alphabet[value % 32] + output; + value = Math.floor(value / 32); + } + return output; +} + +function newRecipeId() { + const bytes = randomBytes(16); + let suffix = ""; + for (const byte of bytes) suffix += alphabet[byte & 31]; + return `${encode(Date.now(), 10)}${suffix}`; +} + +function replaceIds(value, ids) { + if (typeof value === "string") return ids.get(value) ?? value; + if (Array.isArray(value)) return value.map((entry) => replaceIds(entry, ids)); + if (value && typeof value === "object") { + return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, replaceIds(entry, ids)])); + } + return value; +} + +function migrateJsonColumn(database, table, keyColumn, jsonColumn, ids) { + const rows = database.prepare(`SELECT ${keyColumn} AS row_key, ${jsonColumn} AS json_value FROM ${table}`).all(); + const update = database.prepare(`UPDATE ${table} SET ${jsonColumn}=? WHERE ${keyColumn}=?`); + for (const row of rows) { + if (!row.json_value) continue; + try { + const current = JSON.parse(row.json_value); + const migrated = replaceIds(current, ids); + update.run(JSON.stringify(migrated), row.row_key); + } catch { + // Non-JSON source text is left untouched. + } + } +} + +const root = path.resolve(import.meta.dirname, ".."); +const database = new DatabaseSync(path.join(root, "var", "recipe-book.sqlite")); +const rows = database.prepare("SELECT id FROM recipes ORDER BY id").all(); +const existing = new Set(rows.map((row) => row.id)); +const ids = new Map(); + +for (const { id } of rows) { + if (recipeIdPattern.test(id)) continue; + let replacement = newRecipeId(); + while (existing.has(replacement)) replacement = newRecipeId(); + existing.add(replacement); + ids.set(id, replacement); +} + +if (!ids.size) { + console.log("Recipe IDs are already immutable; nothing to migrate."); + database.close(); + process.exit(0); +} + +database.exec("PRAGMA foreign_keys=OFF; BEGIN IMMEDIATE"); +try { + const recipeIdTables = [ + "recipe_components", + "recipe_items", + "item_prep_actions", + "recipe_steps", + "recipe_equipment", + "step_equipment", + "recipe_measure_conversions", + "collection_recipes", + "recipe_media", + ]; + for (const [oldId, newId] of ids) { + for (const table of recipeIdTables) database.prepare(`UPDATE ${table} SET recipe_id=? WHERE recipe_id=?`).run(newId, oldId); + database.prepare("UPDATE recipe_items SET subrecipe_id=? WHERE subrecipe_id=?").run(newId, oldId); + database.prepare("UPDATE source_mappings SET subject_id=? WHERE subject_type='recipe' AND subject_id=?").run(newId, oldId); + database.prepare("UPDATE recipes SET id=? WHERE id=?").run(newId, oldId); + } + migrateJsonColumn(database, "recipes", "id", "source_json", ids); + migrateJsonColumn(database, "collections", "id", "source_json", ids); + migrateJsonColumn(database, "source_mappings", "id", "source_json", ids); + database.exec("COMMIT; PRAGMA foreign_keys=ON"); + const violations = database.prepare("PRAGMA foreign_key_check").all(); + if (violations.length) throw new Error(`Foreign-key validation failed: ${JSON.stringify(violations)}`); + writeSiteProjection(database); + console.log(`Migrated ${ids.size} recipe IDs to immutable identifiers.`); +} catch (error) { + try { database.exec("ROLLBACK"); } catch {} + database.exec("PRAGMA foreign_keys=ON"); + throw error; +} finally { + database.close(); +} diff --git a/scripts/remove-pastry-book.mjs b/scripts/remove-pastry-book.mjs new file mode 100644 index 0000000..075b3cb --- /dev/null +++ b/scripts/remove-pastry-book.mjs @@ -0,0 +1,90 @@ +import fs from "node:fs"; +import path from "node:path"; +import { DatabaseSync } from "node:sqlite"; +import { writeSiteProjection } from "./lib/site-projection.mjs"; +import { exportDatabase } from "../src/lib/backup/export-database.ts"; + +const root = path.resolve(import.meta.dirname, ".."); +const databasePath = path.join(root, "var", "recipe-book.sqlite"); +const backupPath = path.join(root, "data", "recipe-book-backup.json"); + +const db = new DatabaseSync(databasePath, { readOnly: false }); +db.exec("PRAGMA foreign_keys = ON"); + +try { + const book = db.prepare("SELECT * FROM collections WHERE id = ?").get("the_pastry_chefs_little_black_book_vol_1"); + if (!book) { + console.log("Collection the_pastry_chefs_little_black_book_vol_1 not found."); + process.exit(0); + } + console.log(`Found collection: "${book.name}" (${book.id})`); + + const bookRecipeRows = db.prepare("SELECT recipe_id FROM collection_recipes WHERE collection_id = ?").all(book.id); + const bookRecipeIds = new Set(bookRecipeRows.map(r => r.recipe_id)); + console.log(`Recipes to remove: ${bookRecipeIds.size}`); + + const allRecipeItems = db.prepare("SELECT recipe_id, ingredient_id, subrecipe_id FROM recipe_items").all(); + const externalDependents = allRecipeItems.filter( + item => !bookRecipeIds.has(item.recipe_id) && item.subrecipe_id && bookRecipeIds.has(item.subrecipe_id) + ); + if (externalDependents.length > 0) { + throw new Error(`Cannot delete recipes: ${externalDependents.length} external items depend on them: ${JSON.stringify(externalDependents)}`); + } + + const nonBookIngredientIds = new Set( + allRecipeItems.filter(item => !bookRecipeIds.has(item.recipe_id) && item.ingredient_id).map(item => item.ingredient_id) + ); + + const stubIngredients = db.prepare("SELECT id, name, categories_json FROM ingredients WHERE categories_json LIKE '%imported_stub%'").all(); + const ingredientsToDelete = stubIngredients.filter(ing => !nonBookIngredientIds.has(ing.id)); + const ingredientsToKeepAndClean = stubIngredients.filter(ing => nonBookIngredientIds.has(ing.id)); + + console.log(`Stub ingredients to delete: ${ingredientsToDelete.length}`); + console.log(`Stub ingredients used elsewhere (keeping and removing 'imported_stub' category): ${ingredientsToKeepAndClean.length} (${ingredientsToKeepAndClean.map(i => i.id).join(", ")})`); + + db.exec("BEGIN TRANSACTION"); + + for (const ing of ingredientsToKeepAndClean) { + const cats = JSON.parse(ing.categories_json ?? "[]").filter(c => c !== "imported_stub"); + db.prepare("UPDATE ingredients SET categories_json = ? WHERE id = ?").run(JSON.stringify(cats), ing.id); + } + + db.prepare("DELETE FROM collection_recipes WHERE collection_id = ?").run(book.id); + db.prepare("DELETE FROM collections WHERE id = ?").run(book.id); + + const deleteRecipeStmt = db.prepare("DELETE FROM recipes WHERE id = ?"); + for (const recipeId of bookRecipeIds) { + deleteRecipeStmt.run(recipeId); + } + + const deleteIngredientStmt = db.prepare("DELETE FROM ingredients WHERE id = ?"); + for (const ing of ingredientsToDelete) { + deleteIngredientStmt.run(ing.id); + } + + db.exec("COMMIT"); + console.log("Database transaction committed successfully."); + + writeSiteProjection(db); + console.log("Site projection updated."); + + const backupBundle = exportDatabase(db); + fs.writeFileSync(backupPath, JSON.stringify(backupBundle, null, 2) + "\n", "utf8"); + console.log(`Exported updated backup to ${backupPath}`); + + const recipeCount = db.prepare("SELECT count(*) as count FROM recipes WHERE deleted_at IS NULL").get(); + const ingredientCount = db.prepare("SELECT count(*) as count FROM ingredients WHERE deleted_at IS NULL").get(); + const collectionCount = db.prepare("SELECT count(*) as count FROM collections WHERE deleted_at IS NULL").get(); + + console.log("\n--- Current Database Totals ---"); + console.log(`Active Recipes: ${recipeCount.count}`); + console.log(`Active Ingredients: ${ingredientCount.count}`); + console.log(`Active Collections: ${collectionCount.count}`); + +} catch (err) { + try { db.exec("ROLLBACK"); } catch {} + console.error("Error during removal:", err); + process.exit(1); +} finally { + db.close(); +} diff --git a/src/application/pages/api/app/recipes/parse-ingredients.ts b/src/application/pages/api/app/recipes/parse-ingredients.ts index b29518e..5aa1596 100644 --- a/src/application/pages/api/app/recipes/parse-ingredients.ts +++ b/src/application/pages/api/app/recipes/parse-ingredients.ts @@ -1,5 +1,5 @@ import type { APIRoute } from "astro"; -import { parseIngredientsWithOllama } from "../../../../../lib/ingredient-parser"; +import { parseIngredientsDeterministic } from "../../../../../lib/ingredient-parser"; import { readOnlyMode } from "../../../../../lib/runtime"; export const prerender = false; @@ -10,7 +10,7 @@ export const POST: APIRoute = async ({ request }) => { const body = await request.json() as { text?: unknown }; if (typeof body.text !== "string") return Response.json({ error: "Ingredient text is required." }, { status: 400 }); if (body.text.length > 20_000) return Response.json({ error: "Ingredient text is too long." }, { status: 413 }); - return Response.json(await parseIngredientsWithOllama(body.text)); + return Response.json(parseIngredientsDeterministic(body.text)); } catch (error) { const message = error instanceof Error && error.name === "TimeoutError" ? "Ingredient parser timed out. Try again." diff --git a/src/application/pages/api/v1/archive/index.ts b/src/application/pages/api/v1/archive/index.ts index bcaf142..4042c82 100644 --- a/src/application/pages/api/v1/archive/index.ts +++ b/src/application/pages/api/v1/archive/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -9,14 +10,11 @@ export const GET: APIRoute = async () => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const archived = tools.listArchivedItems(); return Response.json({ success: true, data: archived }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list archived items." }, - { status: 500 } - ); + return apiError(error, "Failed to list archived items.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/archive/restore.ts b/src/application/pages/api/v1/archive/restore.ts index 0451072..ba8be17 100644 --- a/src/application/pages/api/v1/archive/restore.ts +++ b/src/application/pages/api/v1/archive/restore.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -17,14 +18,11 @@ export const POST: APIRoute = async ({ request }) => { ); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.restoreArchived({ items: body.items }); return Response.json(result); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to restore items." }, - { status: 400 } - ); + return apiError(error, "Failed to restore items.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/collections/[id].ts b/src/application/pages/api/v1/collections/[id].ts index 3a9c9ca..2dc0487 100644 --- a/src/application/pages/api/v1/collections/[id].ts +++ b/src/application/pages/api/v1/collections/[id].ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -12,15 +13,12 @@ export const GET: APIRoute = async ({ params }) => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const book = tools.getRecipeBook({ id }); return Response.json({ success: true, data: book }); } catch (error) { const status = error instanceof Error && error.message.includes("not found") ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to get recipe book." }, - { status } - ); + return apiError(error, "Failed to get recipe book.", status); } finally { database.close(); } @@ -36,14 +34,11 @@ export const PUT: APIRoute = async ({ params, request }) => { try { const body = await request.json(); body.id = id; - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.saveRecipeBook(body); return Response.json(result); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to update recipe book." }, - { status: 400 } - ); + return apiError(error, "Failed to update recipe book.", 400); } finally { database.close(); } @@ -63,10 +58,7 @@ export const DELETE: APIRoute = async ({ params }) => { database.prepare("UPDATE collections SET deleted_at = datetime('now') WHERE id = ?").run(id); return Response.json({ success: true, message: `Recipe book '${id}' archived.` }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to archive recipe book." }, - { status: 500 } - ); + return apiError(error, "Failed to archive recipe book.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/collections/index.ts b/src/application/pages/api/v1/collections/index.ts index f231221..fb9ce27 100644 --- a/src/application/pages/api/v1/collections/index.ts +++ b/src/application/pages/api/v1/collections/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -9,14 +10,11 @@ export const GET: APIRoute = async () => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const books = tools.listRecipeBooks(); return Response.json({ success: true, count: books.length, data: books }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list recipe books." }, - { status: 500 } - ); + return apiError(error, "Failed to list recipe books.", 500); } finally { database.close(); } @@ -32,14 +30,11 @@ export const POST: APIRoute = async ({ request }) => { return Response.json({ success: false, error: "Recipe book name is required." }, { status: 400 }); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.saveRecipeBook(body); return Response.json(result, { status: 201 }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to create recipe book." }, - { status: 400 } - ); + return apiError(error, "Failed to create recipe book.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/convert.ts b/src/application/pages/api/v1/convert.ts index d4d49ef..801b844 100644 --- a/src/application/pages/api/v1/convert.ts +++ b/src/application/pages/api/v1/convert.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../lib/database"; -import { createMcpTools } from "../../../../mcp/tools"; +import { apiError } from "../../../../lib/api-response"; +import { createDomainTools } from "../../../../lib/domain-tools"; export const prerender = false; @@ -17,7 +18,7 @@ export const POST: APIRoute = async ({ request }) => { ); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.convertUnits({ ingredient_id: body.ingredient_id, quantity: Number(body.quantity), @@ -26,10 +27,7 @@ export const POST: APIRoute = async ({ request }) => { }); return Response.json({ success: true, data: result }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Conversion failed." }, - { status: 400 } - ); + return apiError(error, "Conversion failed.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/equipment/index.ts b/src/application/pages/api/v1/equipment/index.ts index f7d0b8e..867e121 100644 --- a/src/application/pages/api/v1/equipment/index.ts +++ b/src/application/pages/api/v1/equipment/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -10,16 +11,13 @@ export const GET: APIRoute = async ({ request }) => { try { const url = new URL(request.url); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const equipment = tools.listEquipment({ category: url.searchParams.get("category") ?? undefined, }); return Response.json({ success: true, count: equipment.length, data: equipment }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list equipment." }, - { status: 500 } - ); + return apiError(error, "Failed to list equipment.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/ingredients/[id].ts b/src/application/pages/api/v1/ingredients/[id].ts index cea441f..9b0d584 100644 --- a/src/application/pages/api/v1/ingredients/[id].ts +++ b/src/application/pages/api/v1/ingredients/[id].ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -12,15 +13,12 @@ export const GET: APIRoute = async ({ params }) => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const ingredient = tools.getIngredient({ id }); return Response.json({ success: true, data: ingredient }); } catch (error) { const status = (error instanceof Error && error.message.includes("not found")) ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to get ingredient." }, - { status } - ); + return apiError(error, "Failed to get ingredient.", status); } finally { database.close(); } @@ -36,14 +34,11 @@ export const PUT: APIRoute = async ({ params, request }) => { try { const body = await request.json(); body.id = id; - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.saveIngredient(body); return Response.json(result); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to update ingredient." }, - { status: 400 } - ); + return apiError(error, "Failed to update ingredient.", 400); } finally { database.close(); } @@ -57,15 +52,12 @@ export const DELETE: APIRoute = async ({ params }) => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.deleteIngredient({ id }); return Response.json(result); } catch (error) { const status = error instanceof Error && error.message.includes("Cannot archive") ? 409 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to delete ingredient." }, - { status } - ); + return apiError(error, "Failed to delete ingredient.", status); } finally { database.close(); } diff --git a/src/application/pages/api/v1/ingredients/index.ts b/src/application/pages/api/v1/ingredients/index.ts index f4886dc..acbb44a 100644 --- a/src/application/pages/api/v1/ingredients/index.ts +++ b/src/application/pages/api/v1/ingredients/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -10,7 +11,7 @@ export const GET: APIRoute = async ({ request }) => { try { const url = new URL(request.url); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const ingredients = tools.searchIngredients({ query: url.searchParams.get("q") ?? url.searchParams.get("query") ?? undefined, category: url.searchParams.get("category") ?? undefined, @@ -19,10 +20,7 @@ export const GET: APIRoute = async ({ request }) => { }); return Response.json({ success: true, count: ingredients.length, data: ingredients }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list ingredients." }, - { status: 500 } - ); + return apiError(error, "Failed to list ingredients.", 500); } finally { database.close(); } @@ -38,14 +36,11 @@ export const POST: APIRoute = async ({ request }) => { return Response.json({ success: false, error: "Ingredient name is required." }, { status: 400 }); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.saveIngredient(body); return Response.json(result, { status: 201 }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to create ingredient." }, - { status: 400 } - ); + return apiError(error, "Failed to create ingredient.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/inventory/counts.ts b/src/application/pages/api/v1/inventory/counts.ts index fc88b8b..e855a1b 100644 --- a/src/application/pages/api/v1/inventory/counts.ts +++ b/src/application/pages/api/v1/inventory/counts.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -13,14 +14,11 @@ export const GET: APIRoute = async ({ request }) => { const statusParam = url.searchParams.get("status"); const status = statusParam === "open" || statusParam === "completed" ? statusParam : "all"; - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const counts = tools.listInventoryCounts({ status }); return Response.json({ success: true, count: counts.length, data: counts }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list inventory counts." }, - { status: 500 } - ); + return apiError(error, "Failed to list inventory counts.", 500); } finally { database.close(); } @@ -39,7 +37,7 @@ export const POST: APIRoute = async ({ request }) => { ); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.createInventoryCountSession({ title: body.title, counted_at: body.counted_at, @@ -48,10 +46,7 @@ export const POST: APIRoute = async ({ request }) => { }); return Response.json(result, { status: 201 }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to create inventory count." }, - { status: 400 } - ); + return apiError(error, "Failed to create inventory count.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/inventory/counts/[id].ts b/src/application/pages/api/v1/inventory/counts/[id].ts index e87823a..dc3433b 100644 --- a/src/application/pages/api/v1/inventory/counts/[id].ts +++ b/src/application/pages/api/v1/inventory/counts/[id].ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -12,15 +13,12 @@ export const GET: APIRoute = async ({ params }) => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const count = tools.getInventoryCount({ id }); return Response.json({ success: true, data: count }); } catch (error) { const status = error instanceof Error && error.message.includes("not found") ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to get inventory count." }, - { status } - ); + return apiError(error, "Failed to get inventory count.", status); } finally { database.close(); } @@ -35,7 +33,7 @@ export const PUT: APIRoute = async ({ params, request }) => { try { const body = await request.json(); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.updateInventoryCount({ count_id: id, status: body.status, @@ -44,10 +42,7 @@ export const PUT: APIRoute = async ({ params, request }) => { }); return Response.json(result); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to update inventory count." }, - { status: 400 } - ); + return apiError(error, "Failed to update inventory count.", 400); } finally { database.close(); } @@ -67,10 +62,7 @@ export const DELETE: APIRoute = async ({ params }) => { database.prepare("UPDATE inventory_counts SET deleted_at = datetime('now') WHERE id = ?").run(id); return Response.json({ success: true, message: `Inventory count '${id}' archived.` }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to archive inventory count." }, - { status: 500 } - ); + return apiError(error, "Failed to archive inventory count.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/prep-actions/index.ts b/src/application/pages/api/v1/prep-actions/index.ts index 55f7d35..6d3d236 100644 --- a/src/application/pages/api/v1/prep-actions/index.ts +++ b/src/application/pages/api/v1/prep-actions/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -9,14 +10,11 @@ export const GET: APIRoute = async () => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const actions = tools.listPrepActions(); return Response.json({ success: true, count: actions.length, data: actions }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list prep actions." }, - { status: 500 } - ); + return apiError(error, "Failed to list prep actions.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/purchases/[id]/index.ts b/src/application/pages/api/v1/purchases/[id]/index.ts index 4bca43e..9286911 100644 --- a/src/application/pages/api/v1/purchases/[id]/index.ts +++ b/src/application/pages/api/v1/purchases/[id]/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -12,15 +13,12 @@ export const GET: APIRoute = async ({ params }) => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const item = tools.getPurchaseItem({ id }); return Response.json({ success: true, data: item }); } catch (error) { const status = error instanceof Error && error.message.includes("not found") ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to get purchase item." }, - { status } - ); + return apiError(error, "Failed to get purchase item.", status); } finally { database.close(); } @@ -36,14 +34,11 @@ export const PUT: APIRoute = async ({ params, request }) => { try { const body = await request.json(); body.id = id; - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.savePurchaseItem(body); return Response.json(result); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to update purchase item." }, - { status: 400 } - ); + return apiError(error, "Failed to update purchase item.", 400); } finally { database.close(); } @@ -63,10 +58,7 @@ export const DELETE: APIRoute = async ({ params }) => { database.prepare("UPDATE purchase_items SET deleted_at = datetime('now') WHERE id = ?").run(id); return Response.json({ success: true, message: `Purchase item '${id}' archived.` }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to archive purchase item." }, - { status: 500 } - ); + return apiError(error, "Failed to archive purchase item.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/purchases/[id]/prices.ts b/src/application/pages/api/v1/purchases/[id]/prices.ts index a9ec617..c58a571 100644 --- a/src/application/pages/api/v1/purchases/[id]/prices.ts +++ b/src/application/pages/api/v1/purchases/[id]/prices.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -20,7 +21,7 @@ export const POST: APIRoute = async ({ params, request }) => { ); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.recordPriceObservation({ purchase_item_id: id, amount: body.amount, @@ -29,10 +30,7 @@ export const POST: APIRoute = async ({ params, request }) => { }); return Response.json(result, { status: 201 }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to record price observation." }, - { status: 400 } - ); + return apiError(error, "Failed to record price observation.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/purchases/index.ts b/src/application/pages/api/v1/purchases/index.ts index 75c851b..7a083e5 100644 --- a/src/application/pages/api/v1/purchases/index.ts +++ b/src/application/pages/api/v1/purchases/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -10,7 +11,7 @@ export const GET: APIRoute = async ({ request }) => { try { const url = new URL(request.url); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const items = tools.listPurchaseItems({ ingredient_id: url.searchParams.get("ingredient_id") ?? undefined, status: url.searchParams.get("status") ?? undefined, @@ -18,10 +19,7 @@ export const GET: APIRoute = async ({ request }) => { }); return Response.json({ success: true, count: items.length, data: items }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list purchase items." }, - { status: 500 } - ); + return apiError(error, "Failed to list purchase items.", 500); } finally { database.close(); } @@ -40,14 +38,11 @@ export const POST: APIRoute = async ({ request }) => { ); } - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.savePurchaseItem(body); return Response.json(result, { status: 201 }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to create purchase item." }, - { status: 400 } - ); + return apiError(error, "Failed to create purchase item.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/recipes/[id]/cost.ts b/src/application/pages/api/v1/recipes/[id]/cost.ts index b8c497d..fe905c8 100644 --- a/src/application/pages/api/v1/recipes/[id]/cost.ts +++ b/src/application/pages/api/v1/recipes/[id]/cost.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -14,15 +15,12 @@ export const GET: APIRoute = async ({ params, request }) => { try { const url = new URL(request.url); const currency = url.searchParams.get("currency") ?? "USD"; - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const cost = tools.calculateRecipeCost({ recipe_id: id, currency }); return Response.json({ success: true, data: cost }); } catch (error) { const status = (error instanceof Error && error.message.includes("not found")) ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Cost calculation failed." }, - { status } - ); + return apiError(error, "Cost calculation failed.", status); } finally { database.close(); } diff --git a/src/application/pages/api/v1/recipes/[id]/index.ts b/src/application/pages/api/v1/recipes/[id]/index.ts index 810a429..6623557 100644 --- a/src/application/pages/api/v1/recipes/[id]/index.ts +++ b/src/application/pages/api/v1/recipes/[id]/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -13,7 +14,7 @@ export const GET: APIRoute = async ({ params, request }) => { try { const url = new URL(request.url); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const recipe = tools.getRecipe({ id, scale_factor: url.searchParams.get("scale") ? Number(url.searchParams.get("scale")) : undefined, @@ -23,10 +24,7 @@ export const GET: APIRoute = async ({ params, request }) => { return Response.json({ success: true, data: recipe }); } catch (error) { const status = (error instanceof Error && error.message.includes("not found")) ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to get recipe." }, - { status } - ); + return apiError(error, "Failed to get recipe.", status); } finally { database.close(); } @@ -42,14 +40,11 @@ export const PUT: APIRoute = async ({ params, request }) => { try { const body = await request.json(); body.id = id; - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.saveRecipe(body); return Response.json(result); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to update recipe." }, - { status: 400 } - ); + return apiError(error, "Failed to update recipe.", 400); } finally { database.close(); } @@ -69,10 +64,7 @@ export const DELETE: APIRoute = async ({ params }) => { database.prepare("UPDATE recipes SET deleted_at = datetime('now') WHERE id = ?").run(id); return Response.json({ success: true, message: `Recipe '${id}' archived.` }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to archive recipe." }, - { status: 500 } - ); + return apiError(error, "Failed to archive recipe.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/recipes/[id]/nutrition.ts b/src/application/pages/api/v1/recipes/[id]/nutrition.ts index cd5b920..b5d0eb1 100644 --- a/src/application/pages/api/v1/recipes/[id]/nutrition.ts +++ b/src/application/pages/api/v1/recipes/[id]/nutrition.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -12,15 +13,12 @@ export const GET: APIRoute = async ({ params }) => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const nutrition = tools.calculateRecipeNutrition({ recipe_id: id }); return Response.json({ success: true, data: nutrition }); } catch (error) { const status = (error instanceof Error && error.message.includes("not found")) ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Nutrition calculation failed." }, - { status } - ); + return apiError(error, "Nutrition calculation failed.", status); } finally { database.close(); } diff --git a/src/application/pages/api/v1/recipes/[id]/scale.ts b/src/application/pages/api/v1/recipes/[id]/scale.ts index b04cd64..ea4040b 100644 --- a/src/application/pages/api/v1/recipes/[id]/scale.ts +++ b/src/application/pages/api/v1/recipes/[id]/scale.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../../lib/database"; -import { createMcpTools } from "../../../../../../mcp/tools"; +import { apiError } from "../../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../../lib/domain-tools"; export const prerender = false; @@ -13,7 +14,7 @@ export const POST: APIRoute = async ({ params, request }) => { try { const body = await request.json().catch(() => ({})); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const recipe = tools.getRecipe({ id, scale_factor: body.scale_factor, @@ -23,10 +24,7 @@ export const POST: APIRoute = async ({ params, request }) => { return Response.json({ success: true, data: recipe }); } catch (error) { const status = (error instanceof Error && error.message.includes("not found")) ? 404 : 500; - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Scaling failed." }, - { status } - ); + return apiError(error, "Scaling failed.", status); } finally { database.close(); } diff --git a/src/application/pages/api/v1/recipes/index.ts b/src/application/pages/api/v1/recipes/index.ts index bde8e8e..dfa0067 100644 --- a/src/application/pages/api/v1/recipes/index.ts +++ b/src/application/pages/api/v1/recipes/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -12,7 +13,7 @@ export const GET: APIRoute = async ({ request }) => { try { const url = new URL(request.url); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const recipes = tools.searchRecipes({ query: url.searchParams.get("q") ?? url.searchParams.get("query") ?? undefined, category: url.searchParams.get("category") ?? undefined, @@ -22,10 +23,7 @@ export const GET: APIRoute = async ({ request }) => { return Response.json({ success: true, count: recipes.length, data: recipes }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list recipes." }, - { status: 500 } - ); + return apiError(error, "Failed to list recipes.", 500); } finally { database.close(); } @@ -39,14 +37,11 @@ export const POST: APIRoute = async ({ request }) => { try { const body = await request.json(); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const result = tools.saveRecipe(body); return Response.json(result, { status: 201 }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to create recipe." }, - { status: 400 } - ); + return apiError(error, "Failed to create recipe.", 400); } finally { database.close(); } diff --git a/src/application/pages/api/v1/recipes/quality.ts b/src/application/pages/api/v1/recipes/quality.ts index 94797ec..22f0684 100644 --- a/src/application/pages/api/v1/recipes/quality.ts +++ b/src/application/pages/api/v1/recipes/quality.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -9,14 +10,11 @@ export const GET: APIRoute = async () => { if (!database) return Response.json({ success: false, error: "Database unavailable." }, { status: 503 }); try { - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const audit = tools.auditRecipeQuality(); return Response.json({ success: true, data: audit }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to run quality audit." }, - { status: 500 } - ); + return apiError(error, "Failed to run quality audit.", 500); } finally { database.close(); } diff --git a/src/application/pages/api/v1/units/index.ts b/src/application/pages/api/v1/units/index.ts index 905603d..d209b34 100644 --- a/src/application/pages/api/v1/units/index.ts +++ b/src/application/pages/api/v1/units/index.ts @@ -1,6 +1,7 @@ import type { APIRoute } from "astro"; import { openDatabase } from "../../../../../lib/database"; -import { createMcpTools } from "../../../../../mcp/tools"; +import { apiError } from "../../../../../lib/api-response"; +import { createDomainTools } from "../../../../../lib/domain-tools"; export const prerender = false; @@ -10,17 +11,14 @@ export const GET: APIRoute = async ({ request }) => { try { const url = new URL(request.url); - const tools = createMcpTools(() => database); + const tools = createDomainTools(() => database); const units = tools.listUnits({ dimension: url.searchParams.get("dimension") ?? undefined, system: url.searchParams.get("system") ?? undefined, }); return Response.json({ success: true, count: units.length, data: units }); } catch (error) { - return Response.json( - { success: false, error: error instanceof Error ? error.message : "Failed to list units." }, - { status: 500 } - ); + return apiError(error, "Failed to list units.", 500); } finally { database.close(); } diff --git a/src/application/pages/app/archive.astro b/src/application/pages/app/archive.astro index 55aa46a..d1a24b3 100644 --- a/src/application/pages/app/archive.astro +++ b/src/application/pages/app/archive.astro @@ -255,7 +255,7 @@ function formatDeleteDate(dateStr: string | null) { - + {!readOnlyMode && ( @@ -473,7 +505,7 @@ database.close(); const editor=document.createElement('div'),chips=document.createElement('div'),entry=document.createElement('input'); editor.className='tag-chip-editor';chips.className='tag-chip-list';entry.className='tag-chip-entry';entry.placeholder='Tag Name'; let tags=tagSource.value.split(',').map(value=>value.trim()).filter(Boolean); - const render=()=>{chips.replaceChildren(...tags.map(tag=>{const chip=document.createElement('span'),label=document.createElement('b'),remove=document.createElement('button');label.textContent=tag;remove.type='button';remove.textContent='×';remove.ariaLabel=`Remove ${tag}`;remove.onclick=()=>{tags=tags.filter(value=>value!==tag);render();setIngredientDirty()};chip.append(label,remove);return chip}));tagSource.value=tags.join(', ')}; + const render=()=>{chips.replaceChildren(...tags.map(tag=>{const chip=document.createElement('span'),label=document.createElement('b'),remove=document.createElement('button');label.textContent=tag;remove.type='button';remove.textContent='×';remove.ariaLabel=`Remove ${tag}`;const removeTag=(e)=>{e?.stopPropagation?.();tags=tags.filter(value=>value!==tag);tagSource.value=tags.join(', ');render();setIngredientDirty()};remove.onclick=removeTag;chip.onclick=removeTag;chip.append(label,remove);return chip}));tagSource.value=tags.join(', ')}; const add=()=>{const tag=entry.value.trim().replace(/^#+/,'');if(tag&&!tags.some(value=>value.toLowerCase()===tag.toLowerCase())){tags.push(tag);setIngredientDirty()}entry.value='';render()}; entry.addEventListener('keydown',event=>{if(event.key==='Enter'||event.key===','){event.preventDefault();add()}else if(event.key==='Backspace'&&!entry.value&&tags.length){tags.pop();render();setIngredientDirty()}});entry.addEventListener('blur',add);tagSource.after(editor);editor.append(chips,entry);render(); } diff --git a/src/application/pages/app/inventory/[id].astro b/src/application/pages/app/inventory/[id].astro index 7d810bc..3235b3b 100644 --- a/src/application/pages/app/inventory/[id].astro +++ b/src/application/pages/app/inventory/[id].astro @@ -54,7 +54,6 @@ if (!count) { return new Response("Inventory count session not found", { status: 404 }); } -// Fetch all available units and active ingredients for the quick-add selector const allUnits = database.prepare("SELECT id, name, symbol FROM units ORDER BY name").all() as Array<{ id: string; name: string; symbol: string }>; const activeIngredients = database.prepare("SELECT id, name FROM ingredients WHERE status='active' AND deleted_at IS NULL ORDER BY name").all() as Array<{ id: string; name: string }>; @@ -129,7 +128,7 @@ const isCompleted = count.status === "completed"; - +