We can't have them as normal functions because reentrant calls into the Ruby API don't work if you do that, i.e. calling into the Ruby API and that calls mkxp-z's bindings and that calls back into the Ruby API.