Most existing Pokémon projects are written in JS/TS, Python, or C#. This engine is targeted primarily towards AI projects (https://pkmn.ai/projects/) where speed is of the utmost importance, hence a low level language like Zig shines (C/C++/Rust were also considered, Zig was actually the last choice here, it just ended up being the best one). TypeScript is convenient because its a decent scripting/glue language and plays well with the existing Pokémon Showdown codebase for easy integration testing.

The performance numbers for Generation I will not change as other generations get implemented (by design), and Pokémon Showdown will likely fare better as the game logic gets more complex but I would still expect at least a 1000x difference in performance even for modern generations - the things that make Pokémon Showdown slow do not go away as the generations increase, there is just perhaps less irrelevant stuff happening in later generations to slow things down.

The Zig patch in the source tree is optional and for performance reasons... but a ~20% performance boost is hard to pass up. This is not a general purpose patch, it is only relevant to this project which makes heavy use of sub-byte integers and has a very very comprehensive testing suite to ensure that the undefined behavior that could occur if this patch were applied and used to compile arbitrary Zig problems are not an issue.