Combine the curry powder, garam masala, and optional cayenne in a small bowl.
Heat the skillet over high heat until hot. Add the ghee or coconut oil, the chosen chopped onions or cauliflower, and half of the mineral salt. Lower the heat to medium and cook for 8 minutes. The onions should look soft, glossy, and translucent, or the cauliflower should be tender at the edges without hard browning.
While the vegetables cook, place half of the mixed spices in a large plate or shallow bowl. Add the remaining half of the mineral salt and the ground meat. Mix only until evenly seasoned, then form evenly sized meatballs about 1 inch across.
Add the remaining spice mixture to the skillet and stir for about 2 minutes, until it smells fragrant rather than dusty. Lower the heat and stir in the tomato paste until it coats the vegetables and darkens slightly.
Arrange the meatballs in one layer. Pour in all of the measured prepared homemade coconut milk. Add the frozen spinach now if using it, plus the ginger and garlic. Cover and simmer over medium-low heat for 10 minutes. Maintain small steady bubbles rather than a hard boil. For a scaled batch, divide between skillets as needed to preserve one layer and the same cooking time.
Remove the lid and stir carefully. The meatballs should have lost their raw glossy surface and feel firm enough to turn without breaking. Add fresh spinach now if using it and cook for 1 additional minute, just until bright, glossy, and wilted. Serve immediately.