Review what is really needed to expose to the end user and to the drivers.
The end user should be able to express its build system using off the shelf parts and develop new parts (the latter means that a significant portion of As_part needs to be exposed). However for some types, specification is entirely sufficient and there's not need to expose certain details (e.g. argument bundle structure access).
The driver (Assemblage.Private module) should be granted abstract access to everything needed to setup a configuration and explore the project data structure in a given configuration according to the prescribed semantics of the elements. But no more.
Review what is really needed to expose to the end user and to the drivers.
As_part
needs to be exposed). However for some types, specification is entirely sufficient and there's not need to expose certain details (e.g. argument bundle structure access).Assemblage.Private
module) should be granted abstract access to everything needed to setup a configuration and explore the project data structure in a given configuration according to the prescribed semantics of the elements. But no more.