syntax = "proto3";

message Required_lt_ObjectRequired {
  message IBase_gt_ {
    required bool boolean = 1;
    required double number = 2;
    required string string = 3;
    repeated double array = 4;
    optional ObjectRequired.IBase object = 5;
  }
}

message ObjectRequired {
  message IBase {
    optional bool boolean = 1;
    optional double number = 2;
    optional string string = 3;
    repeated double array = 4;
    optional ObjectRequired.IBase object = 5;
  }
}