protobuf message definiton