All good rules. Here's my addition - Code names have to be pronounceable and easily spellable to non-native english speakers.