title: More efficient way to set a oneof request in gRPC/proto3
body: <p>Having this proto3  schema on a PHP client and Python server:</p>
  
  <pre><code>service GetAnimalData{
      rpc GetData (AnimalRequest) returns (AnimalData) {}
  }
  
  message AnimalRequest {
      OneOfAnimal TypeAnimal = 1;
  }
  
  message AnimalData {
      repeated int32 data = 1;
  }
  
  message OneOfAnimal {
      oneof animal_oneof {
          CAT cat = 1;
          DOG dog = 2;
      }
  }
  
  message CAT{
      int32 p = 1;
      int32 d = 2;
      int32 q = 3;
  }
  
  message DOG{
      int32 p = 1;
      int32 d = 2;
      int32 q = 3;
      int32 p2 = 4;
      int32 d2 = 5;
      int32 q2 = 6;
  }
  </code></pre>
  
  <p>In oder to set up a request from the PHP client, I need to do:  </p>
  
  <ol>
  <li>Create a new <code>CAT</code></li>
  <li>Set <code>OneOfAnimal</code> as <code>CAT</code></li>
  <li>Set <code>AnimalRequest.TypeAnimal</code> as <code>OneOfAnimal</code>  </li>
  </ol>
  
  <p>Is there a schema for proto3 where I can just set either a <code>CAT</code> or <code>DOG</code> object directly as my <code>AnimalRequest.TypeAnimal</code></p>