I frequently see packages that have their Unity versions set to specific, non-zero patch versions. For example, the current latest version of the Unity.Collections package has a Unity version of 2020.3.17f1. That means that if you are on an earlier version of 2020.3, it will not show up in the package manager. However, if you manually modify the manifest file for the project to use version 1.2 of the collections package, it works fine since there are no api changes between, say, 2020.3.10 and 2020.3.17.
It would make sense if a package required apis that only exists in, say, 2021.2, to target that specific version and above, but why are packages targeting non-zero patch versions if there are no api changes? As far as I can tell, it’s never specified if there is an explicit reason for that specific version, so it’s unclear if it’s okay to use a version that doesn’t show up in the package manager by modifying the manifest file.
I would appreciate if someone could provide some clarity on this.