Soak the beans. Add beans to a large bowl and cover with at least 3 inches of water. Soak overnight (8 to 12 hours). Drain and rinse.
Start the bean simmer (no acid yet). Add drained beans to a Dutch oven and cover with the 4 cups stock and 2 cups water. Add bay leaf, thyme, smoked paprika, black pepper, and 2 teaspoons of the kosher salt. Bring to a gentle simmer, then reduce heat to low, partially cover, and cook 45 to 60 minutes until the beans are starting to turn creamy but are not fully done. Stir occasionally and add a splash more stock or water if needed to keep beans mostly submerged.
Brown the sausage. While the beans simmer, heat olive oil in a large skillet over medium-high heat. Brown sausage pieces on all sides, 5 to 7 minutes total. Transfer to a plate.
Brown the pork. In the same skillet, brown pork shoulder chunks until well colored, 6 to 8 minutes. Transfer to the plate with sausage.
Build the aromatic base. Lower heat to medium. Add onion, carrots, and celery with a pinch of salt. Cook until softened, 6 to 8 minutes. Stir in garlic and cook 30 seconds. Add tomato paste and cook 1 minute to caramelize.
Deglaze. Pour in white wine and scrape up browned bits from the bottom. Simmer 2 to 3 minutes. This is your flavor concentrate.
Combine and finish the simmer. Scrape the vegetable and wine mixture into the bean pot. Add browned sausage and pork. Continue to simmer gently, uncovered or partially covered, until beans are fully tender and the broth looks rich and lightly thickened, 30 to 45 minutes. If the pot gets dry, add stock or water. If it is soupy, keep simmering uncovered.
Add duck confit or chicken. If using duck confit, stir in the shredded duck and simmer 10 minutes. If using chicken thighs, nestle them into the beans, cover, and simmer gently until chicken reaches 165°F, about 20 to 30 minutes. (You can remove the chicken, shred it, and return it if you prefer.)
Preheat and season with intention. Heat oven to 325°F. Taste the pot. Add the remaining salt from the 1 tablespoon a pinch at a time, keeping in mind sausage, confit, and stock bring their own salt. Remove bay leaf and thyme stems. You want a thick stew with enough liquid to just barely peek around the beans. Add a splash of stock if it looks dry.
Transfer for baking. Transfer mixture to an oven-safe casserole dish, or keep it in the Dutch oven.
Make the crust. In a bowl, toss breadcrumbs with parsley, lemon zest (if using), and melted butter or olive oil. Sprinkle evenly over the cassoulet.
Bake. Bake uncovered for 45 to 60 minutes until bubbling and deeply golden on top. If you want the old-school move, use a spoon to crack the crust once midway through baking, then let it reform.
Rest and serve. Rest 10 to 15 minutes. Spoon into bowls, making sure everyone gets some crust, some beans, and some meat. Taste again and finish with black pepper if needed.