Put the goat or lamb, 600ml water, 15g garlic, 15g grated ginger, 1 teaspoon salt and ground black pepper in a wide, heavy pan. Bring to a gentle boil, skim if needed, then cover and simmer over low heat until nearly tender. Allow approximately 75 to 100 minutes for goat or 55 to 75 minutes for lamb, checking periodically and adding hot water if necessary.
Test the thickest pieces. They should yield under firm pressure from a wooden spoon but remain attached to the bone. Remove the lid, raise the heat and reduce the cooking liquid for 8 to 12 minutes until only a small amount remains.
Add the rapeseed oil and two slit green chillies. Fry over medium high heat for 4 to 5 minutes, carefully turning the meat until lightly coloured around the edges.
Add the remaining 15g garlic and 15g grated ginger. Stir fry for 1 minute without allowing them to darken.
Add the tomato halves cut side down and pour in 50ml hot water. Cover and cook over medium heat for 8 to 10 minutes, until the tomatoes soften and their skins loosen. Remove the skins with tongs.
Remove the lid and raise the heat to medium high. Press the tomatoes with a wooden spoon and cook for 10 to 15 minutes, stirring regularly, until they collapse into the meat.
Add the ground coriander, cumin, Kashmiri chilli powder, crushed chilli flakes and ½ teaspoon salt. Fry for 4 to 5 minutes, stirring carefully, until the masala is thick and oil begins to appear around the edges. Add a small splash of hot water only if it catches before the tomato has broken down.
Lower the heat. Mix a spoonful of hot masala into the whisked yoghurt, then stir it gradually into the pan. Cook for 2 to 3 minutes until incorporated and glossy.
Stir in the butter, cracked black pepper and lemon juice. Add the three finishing chillies, three quarters of the ginger matchsticks and three quarters of the coriander. Cook gently for 1 minute, then check the seasoning.
Remove from the heat and rest for 5 minutes. Garnish with the remaining ginger and coriander before serving.