{
  "id": "f3645b42-960c-4dc1-bf85-f8e6e523f1f5",
  "title": "Italian-Style Braised Beef & Pasta",
  "schemaVersion": "1.0.0",
  "notes": [
    "Fresh spinach: stir in 2–3 cups during the final few minutes.",
    "Zucchini: sauté diced zucchini separately and stir it in before serving.",
    "For a creamier sauce: stir in ¼ cup heavy cream at the end.",
    "Refrigerate leftovers in an airtight container for up to 4 days. Add a splash of broth or water when reheating."
  ],
  "steps": [
    {
      "id": "step1",
      "text": "**Prepare the beef.** Pat the chuck steak dry and cut it into 3–4 large pieces. Season with about 1 teaspoon salt and the black pepper.",
      "title": null,
      "timers": [],
      "consumes": [],
      "produces": [],
      "dependsOn": [],
      "equipmentIds": [],
      "originalText": "1. **Prepare the beef.**\nPat the chuck steak dry and cut it into 3–4 large pieces. Season with about 1 teaspoon salt and the black pepper.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing1"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing2"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing3"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing8"
        }
      ]
    },
    {
      "id": "step2",
      "text": "**Brown the beef.** Heat the olive oil in a Dutch oven or deep skillet over medium-high heat. Brown the beef for 3–4 minutes per side. Transfer it to a plate.",
      "title": null,
      "timers": [
        {
          "text": "3–4 minutes",
          "secondsMax": 240,
          "secondsMin": 180
        }
      ],
      "consumes": [],
      "produces": [],
      "dependsOn": [
        "step1"
      ],
      "equipmentIds": [],
      "originalText": "2. **Brown the beef.**\nHeat the olive oil in a Dutch oven or deep skillet over medium-high heat. Brown the beef for 3–4 minutes per side. Transfer it to a plate.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing4"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing8"
        }
      ]
    },
    {
      "id": "step3",
      "text": "**Build the sauce.** Reduce the heat to medium. Add the garlic and cook for about 30 seconds. Stir in the tomato paste and cook for 1 minute.",
      "title": null,
      "timers": [
        {
          "text": "30 seconds",
          "secondsMax": null,
          "secondsMin": 30
        },
        {
          "text": "1 minute",
          "secondsMax": null,
          "secondsMin": 60
        }
      ],
      "consumes": [],
      "produces": [],
      "dependsOn": [],
      "equipmentIds": [],
      "originalText": "3. **Build the sauce.**\nReduce the heat to medium. Add the garlic and cook for about 30 seconds. Stir in the tomato paste and cook for 1 minute.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing5"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing6"
        }
      ]
    },
    {
      "id": "step4",
      "text": "**Braise.** Add the crushed tomatoes, beef broth, Worcestershire sauce, Italian seasoning, oregano, red pepper flakes if using, and remaining salt. Stir well.",
      "title": null,
      "timers": [],
      "consumes": [],
      "produces": [],
      "dependsOn": [
        "step3"
      ],
      "equipmentIds": [],
      "originalText": "4. **Braise.**\nAdd the crushed tomatoes, beef broth, Worcestershire sauce, Italian seasoning, oregano, red pepper flakes if using, and remaining salt. Stir well.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing2"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing7"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing8"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing9"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing10"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing11"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing12"
        }
      ]
    },
    {
      "id": "step5",
      "text": "**Cook until tender.** Return the beef to the pot and bring everything to a gentle simmer. Cover and cook on low for 1¾–2¼ hours, turning the beef once or twice, until it pulls apart easily with a fork.",
      "title": null,
      "timers": [],
      "consumes": [],
      "produces": [],
      "dependsOn": [
        "step2",
        "step4"
      ],
      "equipmentIds": [],
      "originalText": "5. **Cook until tender.**\nReturn the beef to the pot and bring everything to a gentle simmer. Cover and cook on low for 1¾–2¼ hours, turning the beef once or twice, until it pulls apart easily with a fork.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing8"
        }
      ]
    },
    {
      "id": "step6",
      "text": "**Shred the beef.** Remove the beef, shred it with two forks, discard any large pieces of fat, and return the meat to the sauce. Simmer uncovered for 10–15 minutes if you want the sauce thicker.",
      "title": null,
      "timers": [
        {
          "text": "10–15 minutes",
          "secondsMax": 900,
          "secondsMin": 600
        }
      ],
      "consumes": [],
      "produces": [],
      "dependsOn": [
        "step5"
      ],
      "equipmentIds": [],
      "originalText": "6. **Shred the beef.**\nRemove the beef, shred it with two forks, discard any large pieces of fat, and return the meat to the sauce. Simmer uncovered for 10–15 minutes if you want the sauce thicker.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing8"
        }
      ]
    },
    {
      "id": "step7",
      "text": "**Cook the pasta.** Boil the pasta in salted water according to the package directions. Reserve about ½ cup pasta water before draining.",
      "title": null,
      "timers": [],
      "consumes": [],
      "produces": [],
      "dependsOn": [],
      "equipmentIds": [],
      "originalText": "7. **Cook the pasta.**\nBoil the pasta in salted water according to the package directions. Reserve about ½ cup pasta water before draining.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing13"
        }
      ]
    },
    {
      "id": "step8",
      "text": "**Combine.** Add the pasta to the beef sauce and toss. Stir in Parmesan. Add a splash of pasta water if needed to loosen the sauce.",
      "title": null,
      "timers": [],
      "consumes": [],
      "produces": [],
      "dependsOn": [
        "step6",
        "step7"
      ],
      "equipmentIds": [],
      "originalText": "8. **Combine.**\nAdd the pasta to the beef sauce and toss. Stir in Parmesan. Add a splash of pasta water if needed to loosen the sauce.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing14"
        }
      ]
    },
    {
      "id": "step9",
      "text": "**Finish and serve.** Top with mozzarella if desired, cover for a minute or two until melted, then finish with extra Parmesan and basil or parsley.",
      "title": null,
      "timers": [],
      "consumes": [],
      "produces": [],
      "dependsOn": [
        "step8"
      ],
      "equipmentIds": [],
      "originalText": "9. **Finish and serve.**\nTop with mozzarella if desired, cover for a minute or two until melted, then finish with extra Parmesan and basil or parsley.",
      "temperatures": [],
      "ingredientUses": [
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing14"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing15"
        },
        {
          "note": null,
          "unit": null,
          "quantity": null,
          "ingredientId": "ing16"
        }
      ]
    }
  ],
  "times": {
    "cook": {
      "text": "2–2½ hours",
      "secondsMax": 9000,
      "secondsMin": 7200
    },
    "prep": {
      "text": "15 minutes",
      "secondsMax": null,
      "secondsMin": 900
    },
    "total": {
      "text": "About 2½ hours",
      "secondsMax": null,
      "secondsMin": 9000
    },
    "inactive": null
  },
  "yield": {
    "text": "Servings: 4–6",
    "unit": "servings",
    "quantity": {
      "max": {
        "numerator": 6,
        "denominator": 1
      },
      "kind": "range",
      "text": "4–6",
      "value": {
        "numerator": 4,
        "denominator": 1
      }
    }
  },
  "images": [],
  "source": {
    "url": null,
    "type": "paste",
    "author": null,
    "textOrigin": "provided",
    "publication": null,
    "publishedAt": null,
    "originalText": "---\ntype: source\nstatus: active\nverification: unverified\ncreated: 2026-09-30\nimported: 2026-09-30\nsource: \"~/Downloads/italian_braised_beef_pasta.md\"\nsource_sha256: \"0c941c34fdecf4d7daab7126bd3259b27d1f4e2f23761c6afdc843f3d8207f78\"\ncatalog: \"[[Wiki/Family/Recipe Box]]\"\n---\n# Italian-Style Braised Beef & Pasta\nA rich, cozy pasta made with boneless chuck steak simmered until tender, then shredded into a garlicky tomato sauce.\n**Servings:** 4–6\n**Prep time:** 15 minutes\n**Cook time:** 2–2½ hours\n**Total time:** About 2½ hours\n## Ingredients\n- 1½–2 lb boneless chuck steak\n- 1½ tsp kosher salt, divided\n- ½ tsp black pepper\n- 1 tbsp olive oil\n- 4 cloves garlic, minced\n- 2 tbsp tomato paste\n- 1 can (28 oz) crushed tomatoes\n- 1 cup beef broth\n- 1 tbsp Worcestershire sauce\n- 1 tsp Italian seasoning\n- ½ tsp dried oregano\n- ¼ tsp red pepper flakes, optional\n- 12 oz rigatoni, penne, or other sturdy pasta\n- ½ cup grated Parmesan cheese, plus more for serving\n- 1 cup shredded mozzarella cheese, optional\n- 1–2 tbsp chopped fresh basil or parsley, optional\n## Instructions\n1. **Prepare the beef.**\nPat the chuck steak dry and cut it into 3–4 large pieces. Season with about 1 teaspoon salt and the black pepper.\n2. **Brown the beef.**\nHeat the olive oil in a Dutch oven or deep skillet over medium-high heat. Brown the beef for 3–4 minutes per side. Transfer it to a plate.\n3. **Build the sauce.**\nReduce the heat to medium. Add the garlic and cook for about 30 seconds. Stir in the tomato paste and cook for 1 minute.\n4. **Braise.**\nAdd the crushed tomatoes, beef broth, Worcestershire sauce, Italian seasoning, oregano, red pepper flakes if using, and remaining salt. Stir well.\n5. **Cook until tender.**\nReturn the beef to the pot and bring everything to a gentle simmer. Cover and cook on low for 1¾–2¼ hours, turning the beef once or twice, until it pulls apart easily with a fork.\n6. **Shred the beef.**\nRemove the beef, shred it with two forks, discard any large pieces of fat, and return the meat to the sauce. Simmer uncovered for 10–15 minutes if you want the sauce thicker.\n7. **Cook the pasta.**\nBoil the pasta in salted water according to the package directions. Reserve about ½ cup pasta water before draining.\n8. **Combine.**\nAdd the pasta to the beef sauce and toss. Stir in Parmesan. Add a splash of pasta water if needed to loosen the sauce.\n9. **Finish and serve.**\nTop with mozzarella if desired, cover for a minute or two until melted, then finish with extra Parmesan and basil or parsley.\n## Easy Add-Ins\n- Fresh spinach: stir in 2–3 cups during the final few minutes.\n- Zucchini: sauté diced zucchini separately and stir it in before serving.\n- For a creamier sauce: stir in ¼ cup heavy cream at the end.\n## Storage\nRefrigerate leftovers in an airtight container for up to 4 days. Add a splash of broth or water when reheating."
  },
  "cuisines": [],
  "keywords": [],
  "language": null,
  "warnings": [
    {
      "id": "warn1",
      "code": "AMBIGUOUS_UNIT",
      "path": "/ingredients/12/unit",
      "message": "Ounces may mean mass or fluid volume. Check the original.",
      "severity": "warning",
      "resolution": "corrected",
      "reviewNote": "Confirmed: weight ounces (Jev suggested, 1.00)",
      "sourceExcerpt": "- 12 oz rigatoni, penne, or other sturdy pasta"
    },
    {
      "id": "warn2",
      "code": "OTHER",
      "path": "/source/originalText",
      "message": "Some source lines were not assigned to recipe fields. Check the original for omissions.",
      "severity": "warning",
      "resolution": "accepted_unknown",
      "reviewNote": "Accepted in review: describes the source as written.",
      "sourceExcerpt": null
    },
    {
      "id": "warn3",
      "code": "UNCONFIRMED_DEPENDENCY",
      "path": "/steps",
      "message": "The ingredient links and step order were suggested by Jev. Check them in the recipe table.",
      "severity": "info",
      "resolution": "unreviewed",
      "reviewNote": null,
      "sourceExcerpt": null
    }
  ],
  "equipment": [],
  "categories": [],
  "components": [],
  "difficulty": null,
  "provenance": {
    "method": "ai",
    "aiModel": "jev-1.13.0+gemini-3.8-flash",
    "evidence": [
      {
        "path": "/ingredients/0/originalText",
        "basis": "deterministic",
        "excerpt": "- 1½–2 lb boneless chuck steak",
        "sourceLocator": "ingredient line 1"
      },
      {
        "path": "/ingredients/1/originalText",
        "basis": "deterministic",
        "excerpt": "- 1½ tsp kosher salt, divided",
        "sourceLocator": "ingredient line 2"
      },
      {
        "path": "/ingredients/2/originalText",
        "basis": "deterministic",
        "excerpt": "- ½ tsp black pepper",
        "sourceLocator": "ingredient line 3"
      },
      {
        "path": "/ingredients/3/originalText",
        "basis": "deterministic",
        "excerpt": "- 1 tbsp olive oil",
        "sourceLocator": "ingredient line 4"
      },
      {
        "path": "/ingredients/4/originalText",
        "basis": "deterministic",
        "excerpt": "- 4 cloves garlic, minced",
        "sourceLocator": "ingredient line 5"
      },
      {
        "path": "/ingredients/5/originalText",
        "basis": "deterministic",
        "excerpt": "- 2 tbsp tomato paste",
        "sourceLocator": "ingredient line 6"
      },
      {
        "path": "/ingredients/6/originalText",
        "basis": "deterministic",
        "excerpt": "- 1 can (28 oz) crushed tomatoes",
        "sourceLocator": "ingredient line 7"
      },
      {
        "path": "/ingredients/7/originalText",
        "basis": "deterministic",
        "excerpt": "- 1 cup beef broth",
        "sourceLocator": "ingredient line 8"
      },
      {
        "path": "/ingredients/8/originalText",
        "basis": "deterministic",
        "excerpt": "- 1 tbsp Worcestershire sauce",
        "sourceLocator": "ingredient line 9"
      },
      {
        "path": "/ingredients/9/originalText",
        "basis": "deterministic",
        "excerpt": "- 1 tsp Italian seasoning",
        "sourceLocator": "ingredient line 10"
      },
      {
        "path": "/ingredients/10/originalText",
        "basis": "deterministic",
        "excerpt": "- ½ tsp dried oregano",
        "sourceLocator": "ingredient line 11"
      },
      {
        "path": "/ingredients/11/originalText",
        "basis": "deterministic",
        "excerpt": "- ¼ tsp red pepper flakes, optional",
        "sourceLocator": "ingredient line 12"
      },
      {
        "path": "/ingredients/12/originalText",
        "basis": "deterministic",
        "excerpt": "- 12 oz rigatoni, penne, or other sturdy pasta",
        "sourceLocator": "ingredient line 13"
      },
      {
        "path": "/ingredients/13/originalText",
        "basis": "deterministic",
        "excerpt": "- ½ cup grated Parmesan cheese, plus more for serving",
        "sourceLocator": "ingredient line 14"
      },
      {
        "path": "/ingredients/14/originalText",
        "basis": "deterministic",
        "excerpt": "- 1 cup shredded mozzarella cheese, optional",
        "sourceLocator": "ingredient line 15"
      },
      {
        "path": "/ingredients/15/originalText",
        "basis": "deterministic",
        "excerpt": "- 1–2 tbsp chopped fresh basil or parsley, optional",
        "sourceLocator": "ingredient line 16"
      },
      {
        "path": "/steps/0/originalText",
        "basis": "deterministic",
        "excerpt": "1. **Prepare the beef.**\nPat the chuck steak dry and cut it into 3–4 large pieces. Season with about 1 teaspoon salt and the black pepper.",
        "sourceLocator": "instruction line 1"
      },
      {
        "path": "/steps/1/originalText",
        "basis": "deterministic",
        "excerpt": "2. **Brown the beef.**\nHeat the olive oil in a Dutch oven or deep skillet over medium-high heat. Brown the beef for 3–4 minutes per side. Transfer it to a plate.",
        "sourceLocator": "instruction line 2"
      },
      {
        "path": "/steps/2/originalText",
        "basis": "deterministic",
        "excerpt": "3. **Build the sauce.**\nReduce the heat to medium. Add the garlic and cook for about 30 seconds. Stir in the tomato paste and cook for 1 minute.",
        "sourceLocator": "instruction line 3"
      },
      {
        "path": "/steps/3/originalText",
        "basis": "deterministic",
        "excerpt": "4. **Braise.**\nAdd the crushed tomatoes, beef broth, Worcestershire sauce, Italian seasoning, oregano, red pepper flakes if using, and remaining salt. Stir well.",
        "sourceLocator": "instruction line 4"
      },
      {
        "path": "/steps/4/originalText",
        "basis": "deterministic",
        "excerpt": "5. **Cook until tender.**\nReturn the beef to the pot and bring everything to a gentle simmer. Cover and cook on low for 1¾–2¼ hours, turning the beef once or twice, until it pulls apart easily with a fork.",
        "sourceLocator": "instruction line 5"
      },
      {
        "path": "/steps/5/originalText",
        "basis": "deterministic",
        "excerpt": "6. **Shred the beef.**\nRemove the beef, shred it with two forks, discard any large pieces of fat, and return the meat to the sauce. Simmer uncovered for 10–15 minutes if you want the sauce thicker.",
        "sourceLocator": "instruction line 6"
      },
      {
        "path": "/steps/6/originalText",
        "basis": "deterministic",
        "excerpt": "7. **Cook the pasta.**\nBoil the pasta in salted water according to the package directions. Reserve about ½ cup pasta water before draining.",
        "sourceLocator": "instruction line 7"
      },
      {
        "path": "/steps/7/originalText",
        "basis": "deterministic",
        "excerpt": "8. **Combine.**\nAdd the pasta to the beef sauce and toss. Stir in Parmesan. Add a splash of pasta water if needed to loosen the sauce.",
        "sourceLocator": "instruction line 8"
      },
      {
        "path": "/steps/8/originalText",
        "basis": "deterministic",
        "excerpt": "9. **Finish and serve.**\nTop with mozzarella if desired, cover for a minute or two until melted, then finish with extra Parmesan and basil or parsley.",
        "sourceLocator": "instruction line 9"
      }
    ],
    "ocrEngine": null,
    "importedAt": "2026-10-04T11:36:52.809Z",
    "promptVersion": "recipe-lab-overseer/1.0.0",
    "importerVersion": "deterministic/1.0.0"
  },
  "description": "A rich, cozy pasta made with boneless chuck steak simmered until tender, then shredded into a garlicky tomato sauce.",
  "ingredients": [
    {
      "id": "ing1",
      "name": "boneless chuck steak",
      "note": null,
      "unit": {
        "code": "lb",
        "label": "lb",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": {
          "numerator": 2,
          "denominator": 1
        },
        "kind": "range",
        "text": "1½–2",
        "value": {
          "numerator": 3,
          "denominator": 2
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1½–2 lb boneless chuck steak"
    },
    {
      "id": "ing2",
      "name": "kosher salt",
      "note": null,
      "unit": {
        "code": "tsp",
        "label": "tsp",
        "system": "unknown"
      },
      "divided": true,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1½",
        "value": {
          "numerator": 3,
          "denominator": 2
        }
      },
      "modifiers": [
        "divided"
      ],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1½ tsp kosher salt, divided"
    },
    {
      "id": "ing3",
      "name": "black pepper",
      "note": null,
      "unit": {
        "code": "tsp",
        "label": "tsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "½",
        "value": {
          "numerator": 1,
          "denominator": 2
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- ½ tsp black pepper"
    },
    {
      "id": "ing4",
      "name": "olive oil",
      "note": null,
      "unit": {
        "code": "tbsp",
        "label": "tbsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1 tbsp olive oil"
    },
    {
      "id": "ing5",
      "name": "garlic",
      "note": null,
      "unit": {
        "code": "clove",
        "label": "cloves",
        "system": "count"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "4",
        "value": {
          "numerator": 4,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": "minced",
      "alternatives": [],
      "originalText": "- 4 cloves garlic, minced"
    },
    {
      "id": "ing6",
      "name": "tomato paste",
      "note": null,
      "unit": {
        "code": "tbsp",
        "label": "tbsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "2",
        "value": {
          "numerator": 2,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 2 tbsp tomato paste"
    },
    {
      "id": "ing7",
      "name": "tomatoes",
      "note": null,
      "unit": {
        "code": "can",
        "label": "can",
        "system": "count"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": {
        "unit": {
          "code": "oz",
          "label": "oz",
          "system": "unknown"
        },
        "quantity": {
          "max": null,
          "kind": "exact",
          "text": "28",
          "value": {
            "numerator": 28,
            "denominator": 1
          }
        }
      },
      "preparation": "crushed",
      "alternatives": [],
      "originalText": "- 1 can (28 oz) crushed tomatoes"
    },
    {
      "id": "ing8",
      "name": "beef broth",
      "note": null,
      "unit": {
        "code": "cup",
        "label": "cup",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1 cup beef broth"
    },
    {
      "id": "ing9",
      "name": "Worcestershire sauce",
      "note": null,
      "unit": {
        "code": "tbsp",
        "label": "tbsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1 tbsp Worcestershire sauce"
    },
    {
      "id": "ing10",
      "name": "Italian seasoning",
      "note": null,
      "unit": {
        "code": "tsp",
        "label": "tsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1 tsp Italian seasoning"
    },
    {
      "id": "ing11",
      "name": "dried oregano",
      "note": null,
      "unit": {
        "code": "tsp",
        "label": "tsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "½",
        "value": {
          "numerator": 1,
          "denominator": 2
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- ½ tsp dried oregano"
    },
    {
      "id": "ing12",
      "name": "red pepper flakes",
      "note": null,
      "unit": {
        "code": "tsp",
        "label": "tsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": true,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "¼",
        "value": {
          "numerator": 1,
          "denominator": 4
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- ¼ tsp red pepper flakes, optional"
    },
    {
      "id": "ing13",
      "name": "rigatoni",
      "note": null,
      "unit": {
        "code": "oz",
        "label": "oz",
        "system": "us_customary"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "12",
        "value": {
          "numerator": 12,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": "penne,",
      "alternatives": [
        "other sturdy pasta"
      ],
      "originalText": "- 12 oz rigatoni, penne, or other sturdy pasta"
    },
    {
      "id": "ing14",
      "name": "Parmesan cheese",
      "note": null,
      "unit": {
        "code": "cup",
        "label": "cup",
        "system": "unknown"
      },
      "divided": null,
      "optional": null,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "½",
        "value": {
          "numerator": 1,
          "denominator": 2
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": "grated, plus more for serving",
      "alternatives": [],
      "originalText": "- ½ cup grated Parmesan cheese, plus more for serving"
    },
    {
      "id": "ing15",
      "name": "shredded mozzarella cheese",
      "note": null,
      "unit": {
        "code": "cup",
        "label": "cup",
        "system": "unknown"
      },
      "divided": null,
      "optional": true,
      "quantity": {
        "max": null,
        "kind": "exact",
        "text": "1",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": null,
      "alternatives": [],
      "originalText": "- 1 cup shredded mozzarella cheese, optional"
    },
    {
      "id": "ing16",
      "name": "fresh basil",
      "note": null,
      "unit": {
        "code": "tbsp",
        "label": "tbsp",
        "system": "unknown"
      },
      "divided": null,
      "optional": true,
      "quantity": {
        "max": {
          "numerator": 2,
          "denominator": 1
        },
        "kind": "range",
        "text": "1–2",
        "value": {
          "numerator": 1,
          "denominator": 1
        }
      },
      "modifiers": [],
      "equivalents": [],
      "packageSize": null,
      "preparation": "chopped",
      "alternatives": [
        "parsley"
      ],
      "originalText": "- 1–2 tbsp chopped fresh basil or parsley, optional"
    }
  ],
  "ingredientGroups": [
    {
      "id": "ig1",
      "title": null,
      "componentId": null,
      "ingredientIds": [
        "ing1",
        "ing2",
        "ing3",
        "ing4",
        "ing5",
        "ing6",
        "ing7",
        "ing8",
        "ing9",
        "ing10",
        "ing11",
        "ing12",
        "ing13",
        "ing14",
        "ing15",
        "ing16"
      ]
    }
  ],
  "instructionGroups": [
    {
      "id": "sg1",
      "title": null,
      "stepIds": [
        "step1",
        "step2",
        "step3",
        "step4",
        "step5",
        "step6",
        "step7",
        "step8",
        "step9"
      ],
      "componentId": null
    }
  ]
}
