Description
In the current version of the spec, we say that a protocol declaration has a field called "types, a list of record, enum and error definitions.". It would be useful to allow arbitrary named types, so that we can have, for example, fixed types like MD5 declared in the protocol and used in the message definitions of that protocol.