(I'm assumig the "optional" isn't there in the real example)
You can't simply change between proto2 and proto3. In proto3 everything is optional with an implicit zero default. This is fundamentally incompatible with consumers who have a "required" expectation **unless** you happen to never send the value zero. Because whenever your value is zero, it will be omitted and the consumer will complain about a missing required field.
Options:
- update the consumers **first** so that they don't have a "required" expectation
- never send zero in that field
- don't change to proto3
Marc