Current Situation
To create a target, the dependencies are often input parameters. When the function to create a target is called, different dependencies may need to be used for different purposes, so they are much like the parameter list of a function.
This requires that dependencies may need to be specified in a defined order which is understood by the creation function.
But target definition and creation function may not be close to each other in the source code, so getting the dependency order correct and keeping it correct when changes are made may become cumbersome.
Requirement
Dependencies of a target should optionally have names, such that a creation function can access them by name instead by an index like target.dependencies[3].
# Current Situation
To create a target, the dependencies are often input parameters. When the function to create a target is called, different dependencies may need to be used for different purposes, so they are much like the parameter list of a function.
This requires that dependencies may need to be specified in a defined order which is understood by the creation function.
But target definition and creation function may not be close to each other in the source code, so getting the dependency order correct and keeping it correct when changes are made may become cumbersome.
# Requirement
Dependencies of a target should optionally have names, such that a creation function can access them by name instead by an index like `target.dependencies[3]`.