A tag (or field number) is a small integer that is present in every
wire-stream primitive. The tag is the only means that the interpreter
has to synchronize the wire-stream with its template. Tags are user
defined for each term in each message of the wire-stream. The protobuf
specification requires that each field within a message has a unique
field number; the protobuf compiler (protoc
) will produce
an error if a field number is reused (field numbers are unique only
within a message; an embedded message can use the same field numbers
without ambigituity).