I am also learning C# to try and mod Bannerlord and I have to agree with OP's assessment of the language. Coming from Python, Lisp, even C it seems like a TON of boilerplate to do even simple tasks. If I understand the paradigm correctly, in order to mod any feature you have to override the entire class? What a waste. In Python for example, you can just monkey patch in a specific method or attribute and avoid blasting an entire base class. Seems overriding classes is just going to create unnecessary conflicts between mods and between different versions. The whole public/private layout of the code I have viewed so far in dotPeek seems arbitrary and entirely unnecessary. Tons of getters and setters that do nothing but retrieve an attribute or set that attribute.