Curious about the cache directory tree structure.
Does this play well with VCS refs, for version pinning?
Does this play well with local forks, for testing and experimentation?
Something like the pre go mod system could be helpful for basic shell dependency management.
Also, this should really support vendoring, for users who prefer to keep a copy of the dependencies in full in their project's VCS.