The version resolution algorithm is very similar to NuGet's "lowest applicable version" logic, which has been around since 2010. I've seen surprisingly little discussion of the fact they're so similar.
https://docs.microsoft.com/en-us/nuget/consume-packages/depe...