syntax = "proto3";

package recursive;

message ComplexRecursiveMessage {
  string node_name = 1;
  int32 node_id = 2;

  message Attributes {
    string key = 1;
    string value = 2;
  }

  repeated Attributes attributes = 3;

  message Parent {
    string parent_name = 1;
    int32 parent_id = 2;
    repeated ComplexRecursiveMessage siblings = 3;
  }

  Parent parent = 4;
  repeated ComplexRecursiveMessage children = 5;
}
