Let's assume that we have a Core domain and several Client domains.
We might want to be able to separately emit Core and Core+Client outputs. There might be issues with independent versioning of the domains.
Possible approaches
- Implement cross-domain imports and tag all the fields with imported types with versions (most flexible). Pro: convergence is impossible Cons: more metadata in runtime, larger blobs.
- Implement cross-domain imports and force users to bump downstream versions in sync with upstream changes (Core version bumps => all Client versions should bump). Upside: clean runtime and convergence is impossible. Downside: a lot of rituals.
- Support special annotations allowing users to change namespace to which a type is emitted (one domain may emit to different namespaces). Downside: dirty hack, convergence happens easily in uncontrollable manner.
Also we need to be able to tell Baboon which domains the user wants to process (do not always render everything).
Let's assume that we have a Core domain and several Client domains.
We might want to be able to separately emit Core and Core+Client outputs. There might be issues with independent versioning of the domains.
Possible approaches
Also we need to be able to tell Baboon which domains the user wants to process (do not always render everything).