modules

A map from module dir to module info which dictates how the loaded types are partitioned and generated.

When empty everything is generated in the root output directory. If desired, multiple modules can be specified along with dependencies between them. Types which appear in dependencies will not be re-generated.