If you have a
oneof field, it is impossible to know if it’s missing or it was passed an unrecognized field (e.g., by updated message definition on the other side). This happens because
oneof are not encoded in the wire.
Furthermore, proto2 extensions are not supported in
oneof fields, so there is not way to reserve fields either.