Create a "core" artifact
Description
There's currently no clearly defined "interface" between templates, extension points, or code generation.
If we extract model definitions and interfaces to a "core" artifact, this would reduce noise for those who want to extend and/or contribute to the project.
This would ideally be done after other work in the Separation of Concerns project in this repo.
Related PRs
Suggest a fix/enhancement
From #503:
In the above diagram, we'd include any models (codegen, options, template) or interfaces which may be consumed by users for creating custom generators or plugins. NOTE Template Definition above refers to a strongly-typed model that would replace the current Map<String, Object>
(not the resources defining templates); work for this is already started in #837.