Sintaxe do gRPC / Protobuf 3: qual é a diferença entre as linhas rpc que terminam com ponto-e-vírgula vs '{}'?

Eu já vi duas maneiras diferentes de declarar um serviço gRPC usando o Protobuf v3. Algum código tem ofinal da linha rpc com ponto e vírgula (como a documentação atual do proto3):

service SearchService {
  rpc Search (SearchRequest) returns (SearchResponse);
}

De outroscódigo tem o final da linha rpc com {}:

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

Ambos são compilados com o compilador protoc v3.0.0-alpha-2 e produzem o mesmo código (go).

Qual é a diferença entre as duas sintaxes?

questionAnswers(1)

yourAnswerToTheQuestion