Por qué es obligatorio y opcional se elimina en Protocol Buffers 3

Estoy usando recientementegRPC conproto3y he notado querequired yoptional se ha eliminado en una nueva sintaxis.

¿Alguien podría explicar amablemente por qué se eliminan los requisitos / opcionales en proto3? Este tipo de restricciones simplemente parecen necesarias para hacer que la definición sea robusta.

sintaxis proto2:

message SearchRequest {
  required string query = 1;
  optional int32 page_number = 2;
  optional int32 result_per_page = 3;
}

sintaxis proto3:

syntax = "proto3";
message SearchRequest {
  string query = 1;
  int32 page_number = 2;
  int32 result_per_page = 3;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta