Originally pyray module was supposed to be entirely generated from raylib moldule at runtime. Only raylib needed compilation. However since then they added raylib_api.json and we use it to generate the type stubs and the defines at compile time.
We could do more, even generate everything at compile time. The upside is we could speed up pyray (although it's already at least 80% as fast as raylib) and do things with type info that we can't get at runtime (e.g. #60 (comment) ). I suspect there is a downside but all I can think of is that it violates the original project intention.