...
Each optional field has a 31-bit tag number. This number must be unique within the context it appears in. For example, we could use the tag number "1" both at the top level and within a particular substructure without creating ambiguity, since the contexts are separate.Optional Tagged fields can have any type, except that they cannot be arrays. Note that the restriction against having tagged arrays is just to simplify serialization. We can relax this restriction in the future without changing the protocol on the wire.
Here is an example of a message spec which has tagged fields at both the top level and the array level:
...