syntax = "proto3";

package nestedtwice;

/* Test doc. */
message Test {
  /* Top doc. */
  message Top {
    /* Middle doc. */
    message Middle {
      /* TopMiddleBottom doc.*/
      message TopMiddleBottom {
        // TopMiddleBottom.a doc.
        string a = 1;
      }
      /* EnumBottom doc. */
      enum EnumBottom{
        /* EnumBottom.A doc. */
        A = 0;
        B = 1;
      }
      /* Bottom doc. */
      message Bottom {
        /* Bottom.foo doc. */
        string foo = 1;
      }
      reserved 1;
      /* Middle.bottom doc. */
      repeated Bottom bottom = 2;
      repeated EnumBottom enumBottom=3;
      repeated TopMiddleBottom topMiddleBottom=4;
      bool bar = 5;
    }
    /* Top.name doc. */
    string name = 1;
    Middle middle = 2;
  }
  /* Test.top doc. */
  Top top = 1;
}
