The class-wide communications protocol was built on top of the fact that project communications would be implemented on top of a network of XBee radios running in API mode.  It limited all data transmissions to two bytes beyond the overhead of XBee API mode, an opcode byte and a parameter byte.  Each possible message to and from the boat and controller was assigned an opcode to represent it, and, if that message required a parameter, the protocol described in detail what the parameter was to be and how it could be sent in the one byte allowed.  Finally, the protocol provided communications state charts for both the boats and controllers implementing the protocol, to unambiguously depict the flow of conversations between devices, how errors and loss of communications would be handled, and so on.  Once basic communications drivers were implemented on the boats and controllers, programmers mostly just had to implement the state charts as drawn in the protocol, and the communications for that device would be close to completion.

The complete communications protocol can be read here.