The API for linking method handles to invokedynamic needs to provide users with a way to declare that a call site might need to be rebound.
This requires a token of type java.dyn.Dependency, one or more of which may be associated with a linked invokedynamic instruction. When the dynamic language runtime detects a breaking change to an assumed invariant of its type schema (or some other changed assumption) it needs to be able to invalidate call sites which have been bound under that assumption. A Dependency object reifies this assumption.