Bash the whole spices with the back of a knife or rolling pin, then toast them in a dry pan till fragrant.Note: if using ginger, don't add till the milk and water have come to a boil, to avoid curdling the ginger Add the water and boil for 5 minutes on medium-high or high heat. If adding tea, switch off the fire after boiling, add the tea, cover and steep the tea for 3-5 minutes.
Bring the fire back to medium or medium-low, then add 1 Cup of heavy cream (or 2 Cups of half-and-half/whole milk, and stir in 3 Tablespoons of whipped cream after the liquid has started steaming.)
Gently heat till steaming but not boiling. You don't want the temperature to be more than 200F (but honestly, using a food thermometer here is just overkill! Watch for steam rising above your pot- once you see it, it's time to turn the heat down slightly.)
Whisk in your desired amount of cocoa powder. The more you use, the stronger the chocolate flavor will be (but the more sweetener you will need to use, and the more whisking you will need to do. I've even used 8 Tablespoons previously!)
Stir in the vanilla, then sweeten to taste and stir in the pinch of salt (if using)
Pour the drink into a heat-proof mug through a sieve, so that you can get rid of the whole spices. (They're probably good for another boil though, if you're the budgeting sort.)
Spritz on the whipped cream and decorate with marshmallows, cocoa nibs and cinnamon sticks. Dust cinnamon or cocoa powder and brown sugar on top.