Are plugin versions in `update-center.json` guaranteed to be compatible?

I run an offline Jenkins server with a set of plugins that I fetch and build on the internet ahead of time using nixos and the jenkinsPlugins2nix tool. Mostly this works pretty well, but because of how jenkinsPlugins2nix currently works I have to manually set plugin versions quite a bit, which is pretty tedious.

I see that the update-center.json file gives a list of plugins, and that the documentation here advertises that they are designed to be compatible with specific Jenkins versions. I think updating the jenkinsPlugins2nix tool to use this file could make the system work much better. What I wasn’t able to understand was if all the plugin versions supplied in update-center.json were designed to not only be compatible with the given Jenkins version, but to also be compatible with one another.

For example if I install plugin A which depends on B, can I reasonably expect that the version of plugin B at the “top” level of update-center.json will be compatible for plugin A? I’ve found several examples where the version of B specified in A is something like 1.3, and the top level version is 1.5 (so same major, equal or higher minor version) but I didn’t seem to come across any where the top level version did not satisfy the dependency version. Are there more complicated scenarios I need to watch out for, like situations where plugins A and B come from update-center.json and they both depend on C, but the version of C in update-center.json does not mutually satisfy A and B?

I guess my question boils down to, can I follow the dependency tree in update-center.json, and install versions based on the root.plugins.<plugin name>.version version and have a consistent set of plugins, or is there some higher order dependency resolution that needs to run against update-center.json?

I came across this question while investigating how to create plugin-catalog for cloudbees casc.
Their is GitHub - kyounger/casc-plugin-dependency-calculation: Given the plugins.yaml file, this script will calculate plugin-catalog.yaml file for a CloudBees CasC bundle. which seems to solely use update-center.json for its dependency resolution.

I don suppose you ever got to the bottom of it mayl?