Bring a large pot of water (3 to 4 times the quantity of pasta)to boil and salt it literally.
Once boiling, add the uncooked pasta and stir 1-2 times. Cook fro 6-8 minutes or until the pasts is al-dante. Follow the cooking time on the packaging of pasta.
Drain and reserve about ½ cup of pasta water.
In a wide pan, heat up the oil on medium heat.
Once warm, add the chopped onions. Saute for 4-5 minutes or untill the onions start turning little brown, don't brown them too much.
Next add the pounded ginger and garlic and saute for 10-15 seconds.
Add the ground meat now. Break the meat using a spoon and mix it with the onions.
Sprinkle the spice powders , salt and mix with the keema.
Brown the meat for good 8-10 minutes to low medium heat . Initially it will release its moisture but eventually, you will see that the oil is starting to seperate.
Add the tomato sauce and marinara sauce next. Add about ¼ cup water right now.
Reduce the stove to low medium and let the tomatoes cook down. Slowly you will see that the keema and tomatoes become saucy, continue to cook them till you see that they thicken a bit and tiny oil bubbles start appearing. You could cover for a few minutes. Don't dry out the meat sauce too much.
Add chopped mint or cilantro and green chilies along with lemon juice now.
Add in the pasta to the warm sauce and fold gently with the meat. Add more pasta water if you feel its dry. Taste and adjust the salt as well.
Let everything cook for 3-4 minutes, don't stir too much since the pasta is soft and might break.
Switch off the stove, add some fresh cracked pepper(optional) pr sprinkle of parmesan cheese. Serve warm.