Hi Matt,
Not sure I get your comment...
Correctly the definition of the requirements for Root node is
requirements:
- dependency:
type: tosca.capabilities.Root
lower_bound: 0
upper_bound: unbounded
This means that we have to connect to any node that provides the "tosca.capabilities.Root" capability. Right now I don't see any node that defines a capability of type "tosca.capabilities.Root". It is not mentioned that somehow all nodes have a "tosca.capabilities.Root" capability so right now the dependency require that a user explicitly defines a node with a "tosca.capabilities.Root" capacity so he can create a depends-on relationship.
I think that if we want to keep the dependency requirement we should change the type from "tosca.capabilities.Root" to "tosca.nodes.Root" to indeed use the implicit capability of the node.
From use-case perspective I would use this as a kind of un-managed relationship. For example for middleware that supports automatic discovery of services through multicast (and having a manager that should be started before containers etc..) I have a valid example of such middleware with GigaSpaces Data-grid product.
Of course you can create a connects to relationship but as the connection is not managed by the TOSCA container you won't have any artifacts related so maybe depends on is more convenient ?
TODO: This allows for generic dependencies to be declared from any node type and we DO have an use case/example for it.
TODO: We need to show a good use case for this generic “feature” capability or remove it. Currently, it is simply the logical analog of the “dependency” requirement of this Root type
TODO: Link to examples elsewhere in document if they exist elsewhere.