As it stands tilekit is already a well designed, impressive tool for what it intends to do. I have a few suggestions for the C/lua exporter, that would make tilekit a lot more useful for projects where the ruleset code will be generated multiple times over the development.
- If I understood it correctly, only the final rule layer is exported. I expected it to export a function that contains all the layers, and runs them according to the declared repetition count.
- Implement c/lua export from the command line. ( 1) this would allow using tilekit as part of an automated build process 2) this would allow using tilekit in a hot reloading pipeline - automatically regenerating the ruleset code when the tilekit project is saved). At least have a single-click way to export the C/lua ruleset from the UI.
- Turn tki_random() into a C macro, that can be overridden by including the exported rule file from another file and having "#define tki_random..." before it. Preferably allow passing void* context to the random function. (allows deterministic generation, without hackily turning rand() into a macro)
- Allow changing the name of the exported tki_process_map function, and allow making it non-static, so it can be used more freely around the program. (It should be possible to pass the name via command line, or save it as part of the project)