# Principles

This is a list of design principles that MCVM as a software and ecosystem will try to follow to the best of its ability.

# 1. Packages are secure

Packages should not be able to perform any privileged actions on a user's system without their explicit consent. Barring bugs and malicious addon files, users should be assured that installed packages will stay in their bounds.

# 2. Packages are self-contained

Packages should be fully functional with only the package file itself and not any other sources, such as data in the repository entry.

# 3. Minecraft content authors should be respected

The people who make content for this game should have their hard work and wishes respected.

# 4. Changes in the environment should be explicit

Your game environment should not change unless you update the profile. Your set of available packages should not change without a repository sync.

# 5. MCVM should be disconnected from any other update schedules

You shouldn't have to update MCVM when a new Minecraft version releases or a new version of a package is published unless the process for using these systems changes.

# 6. MCVM shouldn't touch things it doesn't own

MCVM should not mess with files that it does not manage.

# 7. MCVM should be compatible with every version

The oldest versions should still work just as well as the newest.

# 8. We are not a cracked launcher

Cracked launchers are always shady and always attract shady people. We won't support anyone trying to make our launcher cracked.