Heat the olive oil in a pan and add the onion, cook gently for about 10 minutes until soft and translucent.
Add the mushrooms and garlic and cook until they are soft and all of the excess liquid has evaporated.
Meanwhile, blitz the walnuts in a food processor until they are ground to a very fine rubble. Don't go too far, you don't want to make flour or nut butter.
Tip the ground walnuts into a large bowl and add the drained chickpeas to the food processor. Blend until they are very finely chopped but again don't go too far, you don't want to end up with hummus.
Add the chickpeas to the bowl with the walnuts and transfer the mushroom onion mixture to the food processor. Again, blend until extremely finely chopped but not pureed.
Add the blended mushroom mixture to the bowl along with the nutritional yeast, allspice, nutmeg, black pepper, white pepper, salt, bouillon powder, soy sauce, tomato puree, chopped parsley and water.
Mix everything together very well then add the vital wheat gluten and stir until it is combined and no dry patches remain. Do not knead the mixture or stir it too much as that will make the meatballs too chewy.
Using about a rounded tablespoon per meatball, roll the mixture tightly into balls. Aim for about 37.
Place the balls slightly spaced apart in a steamer pan, they will expand as they cook.
Steam them for 30 minutes, turning them over halfway through. At this point they can be allowed to cool and then refrigerated in an airtight container for up to four days. They can also be frozen (see post above for instructions). (If your steamer pan isn't big enough you may have to steam them in a couple of batches).
To make the sauce, melt the butter in a saucepan and stir in the flour. cook for a minute then very gradually stir in the vegetable stock. Just add a little at a time and stir very well after each addition to avoid lumps.
Bring the sauce up to a simmer while stirring and cook until thickened.
Remove from the heat and stir in the cream, soy sauce and mustard. Taste and add more soy sauce/mustard/salt and pepper as needed.
When you are ready to serve, heat a little oil in a frying pan and cook the meatballs for about 5-8 minutes, turning them frequently until they are browned on all sides.
Serve the meatballs with mashed potato, the creamy gravy and lingonberry sauce if you like.