See example in Synthesis: [https://github.com/mratsim/Synthesis/blob/3a443cf3/synthesis/factory.nim#L77](https://github.com/mratsim/Synthesis/blob/3a443cf3/synthesis/factory.nim#L77)
I.e. Gather everything in a compile-time table or sequence and use a final macro `generateGroups` that read it.