Protobuf имеет возможность заполнять не все поля. В версии 2 поля можно было помечать optional required в зависимости от требований. Более того это расширяемый формат, что означает, на более старом клиенте может не быть ещё новых полей и он будет корректен для сервера. Аналогично в обратную сторону, новые поля заполненные клиентом просто не будут отображаться на сервере(будут парситься но не иметь имени.
В версии 3 все поля опциональны, но при этом нет флага, а есть значения по умолчанию (насколько я помню). В версии 2 это было отдельным флагом
Protobuf имеет возможность заполнять не все поля. В версии 2 поля можно было помечать optional required в зависимости от требований. Более того это расширяемый формат, что означает, на более старом клиенте может не быть ещё новых полей и он будет корректен для сервера. Аналогично в обратную сторону, новые поля заполненные клиентом просто не будут отображаться на сервере(будут парситься но не иметь имени.
В версии 3 все поля опциональны, но при этом нет флага, а есть значения по умолчанию (насколько я помню). В версии 2 это было отдельным флагом