Currently the XSiteAdminCommand uses a Type field and a switch statement to differentiate between various actions. This worked well for the old Externalizer approach, however it does not fit well with protobuf messages. Instead, the command should be split into individual commands.
This enables the logic of the command types to be separated, making it easier to maintain backwards compatibility in the long term. Each command will use a ProtoStream TypeId in the range of 1000 -> 3999, so the cost of two bytes is the same as the existing class ID plus enum Type.