syntax = "proto2"; message ComplexProtoMessage { message InnerMessage { optional string text = 1; repeated uint32 numbers = 2; } message InnerBuffer { message Flags { optional bool flag = 1; } optional bytes data = 1; repeated .ComplexProtoMessage.InnerBuffer.Flags flags = 2; } optional uint32 number32 = 1; optional uint64 number64 = 2; repeated uint32 list_number32 = 3; repeated uint64 list_number64 = 4; repeated .ComplexProtoMessage.InnerMessage messages = 5; repeated .ComplexProtoMessage.InnerBuffer buffers = 6; }