syntax = "proto2"; package example; message Object { required string name = 1; required int32 identifier = 2; optional string address = 3; enum ObjectType { LOCAL = 0; REMOTE = 1; NEITHER = 2; } message ObjectData { required string number = 1; optional ObjectType type = 2 [default = NEITHER]; } repeated ObjectData dataList = 4; } message ObjectList { repeated Object object = 1; }