I like your simulator. Python is the goto when you want to throw something out quickly.

On the other hand, in C# the baseline engine is about 1000 lines, another 500 per class for skills, and a thousand or so for the grammar.