01 - Preheat the oven to 350°F. Grease a 9-inch square or round baking dish with butter or nonstick spray.
02 - In a large mixing bowl, whisk together the pumpkin puree, eggs, granulated sugar, whole milk, heavy cream, cinnamon, ginger, nutmeg, cloves, salt, and vanilla extract until smooth and fully combined. Pour the filling into the prepared baking dish and spread evenly.
03 - In a separate bowl, combine the flour, rolled oats, brown sugar, granulated sugar, cinnamon, and salt. Add the cold diced butter and cut it in using a pastry blender or your fingertips until the mixture forms moist, pea-sized crumbs. Fold in the chopped pecans or walnuts if using.
04 - Sprinkle the crisp topping evenly over the pumpkin filling, covering the entire surface.
05 - Bake for 40 to 45 minutes, or until the topping is deep golden brown and the filling is set around the edges with a gentle jiggle in the center.
06 - Allow to cool for at least 20 minutes before serving. Serve warm or at room temperature, optionally topped with whipped cream or vanilla ice cream.