> It’s impossible to differentiate a field that was missing in a protobuffer from one that was assigned to the default value. Presumably this decision is in place in order to allow for an optimization of not needing to send default scalar values over the wire.
Isn't this just flat incorrect? You can tell the difference between set-to-default and not-set with buffer.has_some_field().