Name, Branch, Versioning
Any module is uniquely identified by the triplet of its name, branch and version.
A module owner can choose any free module name at the time of the first deployment.
Versioning (mostly) follows a simplified semver semantic. A branch is used to separate multiple release lines of the same module, which may apply to different variations of the same content.