Projects can be created under an Account, and are referenced by username/project.
Projects also have a separate set of Members that can publish to the project. This enables higher security, since if a project member's key is compromised, they can only effect the Project and not the Account.
We recommend using different keys for Projects and Account Admin keys for higher security.
A Project contains:
An address array of members that represent the Project Publishers.
A reference to metadata stored on a decentralized network
A list of versions by tag -- this can be SemVer or CalVer, or any arbitrary versioning system (i.e., "v1" or "Pro Edition").
You can view the smart contract implementation here.