How to handle dependency versions?

Structured data is hard! We could use your input on how to handle dependencies of releases, e.g. if mapX needs modY to be installed:

  • Releases can depend on other releases, e.g. many map releases require the user to install them to a mod’s directory.
  • Mods can have many versions over time.
  • The readme files often either mention just the mod’s name (e.g. “Copper”) or a specific version (e.g. “Copper 1.2.34”).

How should a good database and “affiliated” tooling handle this?

  • If there is just the mod name, does it mean the player can use any mod version? Or should the one available at the time of release be considered the correct one? Should it always be the latest one?
  • If there is a version number named as dependency for a release, obviously the creator does not want it played with an older version but are newer versions ok?

If we would set a releases dependency to be a specific mod release, that would be easiest in terms of database maintenance.
But to me that does not seem like what the community would like. I think people (and developers) often want to play even older releases with the newest version of the mod they were developed for. Even if that might break balance.

For the more nerdy of you, here are some ideas I tried in the DB for Quoth: https://github.com/Quaddicted/quaddicted-data/commit/d5160181868beed310ce82c98ed7e8043255aaa9

What would you suggest?