Hi; default values *are not sent*, especially in proto3 where zero is default and default is zero. Likewise, the root object in a message is not wrapped in any way - only fields *on* the root object.
This means that the binary encoding of a CommandRequest with Code.RESET is: zero bytes, which is a perfectly valid size in protobuf.
Sometimes, people find it convenient / helpful to use a DEFAULT / NONE / UNKNOWN = 0, with their *actual* enum values above that. This makes the default experience easier to understand, and avoid problems.
Marc