Lamb Meatballs with Escarole, Cipollini Onions, and Cranberry Beans

Ingredients:
3/4 cup dried cranberry beans, borlotti beans, or Roman beans, or 11/2 cups shelled fresh cranberry beans
2 teaspoons salt
1 bay leaf
1 (1/4-pound) piece smoky slab bacon (optional)
2 pounds ground lamb
3 tablespoons dried marjoram
1 tablespoon dried rosemary
1 medium yellow onion, minced (about 1 cup)
1 medium garlic clove, minced
4 large eggs, lightly beaten
1 1/2 cups fresh bread crumbs or finely ground panko bread crumbs
2 teaspoons coarse salt
1/2 teaspoon freshly ground black pepper
2 teaspoons plus 2 tablespoons extra-virgin olive oil, divided
2 quarts homemade beef stock or prepared beef broth, or lamb stock, if you have it
1/4 cup extra-virgin olive oil
15 cipollini onions, peeled and quartered
Coarse salt and freshly ground black pepper
1 head escarole (about 1 1/4 pounds), trimmed, leaves cut into 2-inch pieces and rinsed well
Freshly grated Parmigiano-Reggiano cheese
1/4 cup fresh flat-leaf parsley leaves
1/4 cup celery leaves

Instructions:
If using dried beans, soak the beans overnight in room-temperature water to cover. (If using fresh beans, shell the beans and skip to step 3.)
To cook the beans, drain the beans and place in a medium sauce pot with 5 cups water, the salt, bay leaf, and bacon (if using). Simmer over low heat for 1 to 1 1/2 hours, or until the center of the beans reaches a creamy texture.
Meanwhile, to prepare the meatballs, combine the lamb, marjoram, rosemary, onion, garlic, eggs, bread crumbs, salt, and pepper in a large bowl. Mix with clean hands until well combined. Heat 2 teaspoons of the olive oil in a 7- to 8-quart Dutch oven or sauce pot over medium heat. Form one small meatball and sauté until the meat is no longer pink, 4 to 5 minutes. Taste the meatball and adjust the seasoning of the meat mixture as needed.
Use a 2-ounce ice cream scoop to form 24 meatballs and lay them on a rimmed baking sheet. (Or, divide the mixture into 4 parts and make 6 meatballs per part.) Add the remaining 2 tablespoons olive oil to the pot and heat over medium-high heat until hot but not smoking. Working in batches, brown the meatballs on all sides, 5 to 6 minutes per batch. Drain the fat from the pot, then return the meatballs to the pot. Add enough beef or lamb stock to cover. Bring to a simmer over medium heat, then reduce the heat to low and allow the meatballs to simmer gently until they are cooked through, about 1 hour.
Remove the meatballs from the braising liquid with a slotted spoon and transfer to a large platter or baking sheet. Tent the platter with foil to keep the meatballs warm. Strain the braising liquid and reserve.
To make the vegetables, heat a large saute pan over medium heat and add the olive oil. Add the cipollini onions, season with salt and pepper, and cook, stirring occasionally, until golden, about 10 minutes. Add the escarole, season with salt and pepper, and cook until just wilted, 2 or 3 minutes. Add the beans and 1/4 cup of the reserved meatball cooking liquid, stirring to combine.
To serve, spoon the onions, escarole, and beans with the pan juices into bowls. Top with 3 or 4 meatballs per serving and garnish with Parmigiano-Reggiano and the parsley and celery leaves.