This feels really good.
If I may suggest a feature, It'd be great to have probability estimations of each of the node, and then the leaf nodes (last node in a stream of dependencies) would have its probability computed as the multiplication of all parents.
This would make it obvious when something is not gonna happen :)
And it would make it easy to detect which part of the chain with a low probability kills the entire chain :)