When downloading projects with large transitive deps sets, it's essential to provide some feedback about download progress to the user from many different types of clients. It would be great to be able to pass a function to the API which would be called back with this progress information. The Maven resolution libs support this via a TransferListener, you can see how pomegranate's support for this works here and here. I believe that tools.deps uses JGit, which also has some support for download progress. The listener format needs to support multiple simultaneous downloads, which the Maven libs use by default.