package pm1;

/* @Indexed */
message G1 {
   /*
     @Id
     @IndexedField(index=true, store=false)       
    */
   required int32 e1 = 1;
   
   /* @IndexedField */
   required string e2 = 2;

   optional float e3 = 3;

   /* @IndexedField(index=true, store=false) */
   repeated string e4 = 4;
   
   repeated string e5 = 5;
}

/* @Indexed */
message G2 {
   /*@Id*/
   required int32 e1 = 1;
   required string e2 = 2;
   
   optional G3 g3 = 5;
   repeated G4 g4 = 6;
   /*@IndexedField(index=false) */
   optional bytes e5 = 7;
   optional fixed64 e6 = 8;
}

/* @Indexed */
message G3 {
   required int32 e1 = 1;
   required string e2 = 2;
}

/* @Indexed */
message G4 {
   required int32 e1 = 1;
   required string e2 = 2;
}
