Protocol messages are deemed optional. Lack of protocol messages inside a delta message could either be indicated through a complete lack of the protocolMessages property, a value undefined (which is arguably equivalent to the key-value pair with key protocolMessages not being present), a value null (which is returned by the C# server implementation) or a value of []. Seems a bit messy. I would prefer [] and reword the specification as “Each message has zero or more protocol messages consisting of:”.