Cook the pasta: Bring a large pot of salted water to a boil. Cook the pasta until just al dente.
Reserve 2 tablespoons of pasta water, then drain and spread on a sheet pan to cool slightly.
Whisk the dressing: In a large bowl, whisk 1/3 cup olive oil, 2 tablespoons balsamic vinegar, 1 tablespoon lemon juice, 1/2 teaspoon lemon zest (optional), 1 teaspoon Dijon, 1/2 teaspoon honey, the grated garlic, a pinch of red pepper flakes, 1/2 teaspoon salt, and several grinds of black pepper until glossy and combined.
Toss warm pasta with dressing: Add the warm (not hot) pasta to the bowl with the dressing and toss well. Use a splash of reserved pasta water if you want a silkier coating. Let it sit for 5–10 minutes to absorb flavor.
Prep the add-ins: Halve the tomatoes, drain the mozzarella balls, and slice or tear the prosciutto into bite-size ribbons.
Tear the basil just before adding to prevent bruising.
Combine gently: Fold in tomatoes, mozzarella, and basil. Add prosciutto last, folding lightly so it stays in soft ribbons rather than clumps.
Adjust seasoning: Taste and add more salt, pepper, balsamic, or lemon as needed. If it tastes flat, it likely needs a pinch more salt or a squeeze of lemon.
Finish and serve: Top with shaved Parmesan if you like.
Serve at room temperature for the best flavor, or chill for 30–60 minutes if you prefer it cooler.