Seems very fun but the instructions are really unclear.
There's no indication of the class having to be defined in the scope (though it makes sense). The password isn't really clear on being in the filesystem (at first I assumed it's in the actual github repository for the game) and "no __builtins__" sounds more like you can't use the literal string "__builtins__".
I feel like it would've been so much more fun if you could see how the rules are checked instead of having to figure it out.
Quickly glossing over index diachronica, there's no common sound change of p<->d, but p<-b->m with the medial b has instances. (sorry for the syntax, no idea how to express this)
Languages tend to lose grammatical features (english gender) but also gain them (english habitual tense). A common way you can see languages get complex is due to sound changes making grammar irregular (english past participles).
Languages that lose cases will replace them with adpositions which can then again develop into cases. I unfortunately can't think of any PIE languages but Hungarian has 18 cases while proto-uralic only had 6.
PIE languages are currently in the process of losing cases and we can statistically expect some of them to start gaining cases again sometime in the next few millennias.
What is your proposed theory? It is understandable to be sceptical considering the scandal that was proto-altaic, however there is evidence in form of successful reconstructions of PIE languages.