// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC.  All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

syntax = "proto2";

package nest;

message Outer {
  message Inner {
    optional int32 num = 1;
    optional bool boolean = 2;

    message SuperInner {
      message DuperInner {
        message EvenMoreInner {
          message CantBelieveItsSoInner {
            optional int32 num = 99;
          }
        }
      }
    }
  }
  optional Inner inner = 1;
  optional .nest.Outer.Inner.SuperInner.DuperInner.EvenMoreInner
      .CantBelieveItsSoInner deep = 2;
}
