Generously grease a steel plate or baking tray (about 7” by 11” should do) with 2 inch edge with ghee and keep aside.
Sieve the flour and pan roast it over a low flame till the flour loses its raw smell. Do not brown. Melt the ghee in a largish thick bottomed pot. Add the sieved and pan roasted flour to it. Mix well and pan roast it again, on a slow flame for about 5 minutes or so till you get a nutty aroma but do not brown it. Transfer to a plate and keep aside.
Put the sugar in the same pot with the milk and water and stir till it dissolves. Stir in the saffron. Let this cook, over medium heat, until the sugar syrup reaches one-string consistency. Put a drop on a cool plate. When tested between your thumb and first finger the slightly warm sugar syrup should form a stretchy string.
Take the pan off the heat. Mix in the roasted ghee-flour mixture and powdered cardamom. If using other flavor or colour, add it at this point. Keep mixing till the mixture becomes smooth. As you keep mixing, the mixture will loosen up a bit and come together as a mass.
If it forms a crumbly texture, this is because the sugar syrup has cooked beyond the desired consistency. Do not worry. Add a couple of tablespoons of water or milk to it and return the pot to the stove. Keep stirring and the mixture will loosen up and form the right consistency for pouring. Do not overcook at this point and pour the mixture onto the greased plate or tray.
Working quickly, pour this onto the greased tray and tap on the counter gently to level it. Score into square or diamond shaped pieces with a sharp greased knife while still warm.
Let it cool completely before cutting along scored lines. Store in an airtight container.