I do use some metaprogramming, but as safety rather than generation: a declarative macro derives the modifier struct, defaults, parsing and wire order from a single list, and feeds hash/save/resync so I can add mechanics at a high level without being able to desync the sim. Also a set of probes help me test for correctness and speed after a change. So seems like I'm taking an iteration speed approach with safeguards, checking after the fact, while yours is optimizing beforehand by trying to encode optimal structs. That's fascinating, it will probably occupy my head for a good portion of the day, thanks again.