syntax = "proto2"; message Syntax2Person { enum Gender { female = 0; male = 1; }; enum ZodiacSign { aries = 0; taurus = 1; gemini = 2; cancer = 3; leo = 4; virgo = 5; libra = 6; scorpius = 7; sagittarius = 8; capricorn = 9; aquarius = 10; pisces = 11; }; required string uuid = 1; required string name = 2; required string surname = 3; required Gender gender = 4; required uint32 birthDate = 5; optional bytes photo = 6; optional string phoneNumber = 7; optional bool isOnline = 8; optional fixed32 visitTime = 9; optional uint32 age = 10; optional ZodiacSign zodiacSign = 11; repeated string songs = 12; repeated uint32 color = 13; optional string hometown = 14 [default='Moscow']; repeated float location = 15 [packed=true]; optional double pi = 16; optional double lotteryWin = 17; optional float someRatio = 18; optional float temperature = 19; optional sint64 randomBigNumber = 20; optional group MeasureUnits = 21 { repeated float coef = 1; repeated string unit = 2; }; optional group Nestiness = 22 { optional group A = 1 { message SubB { optional group C = 1 { optional uint32 d = 1; repeated uint32 e = 2; }; }; optional SubB b = 100; }; }; optional string newFieldStr = 23 [default='abc']; optional int32 newFieldInt = 24 [default=-11]; optional bool newBool = 25 [default=true]; };