This section contains a short description of each kind of message that may be sent, in the order of their message identifiers. The order of message identifiers assigned to messages is based on historic evolution of the protocol and is of no further relevance. Some message identifiers are not assigned. These typically have been used by some previous version of the protocol and are either obsolete commands or have been replaced by a new command with another message identifier.
For each message, we provide the message identifier together with a symbolic name, the parameters sent and return values received (from the client viewpoint), a short description of what the procedure does, and possible error codes returned. Section F.4 contains an overview of all error codes.
The notation int indicates that an integer is sent, string indicates that a string is sent and int foo indicates that an array of integers is sent, with the number of integers sent equal to the integer sent immediately before, except when noted otherwise. The notation optional indicates that the argument may not be sent (for example, if it is null). The notation remainder indicates that the argument fills up the rest of the message. The other notation should be obvious.