syntax = "proto2";

extend TopLevel {
  optional TopLevel otl = 100;

  optional group GroupX = 104 {
    optional string groupxs = 1042;

    optional int64 groupxi = 1041;
  }
}

message Whatzit {
  repeated jhump.protoreflect.desc.Bar gyzmeau = 1;
}

message Whatchamacallit {
  required jhump.protoreflect.desc.Foo foos = 1;
}

message Frobnitz {
  oneof def {
    uint32 g3 = 10;

    sint32 g2 = 9;

    int32 g1 = 8;
  }

  repeated string f = 7 [deprecated = true];

  optional TestMessage.NestedEnum e = 6 [default = VALUE2];

  optional TestMessage.NestedMessage d = 5;

  oneof abc {
    TestMessage.NestedEnum c2 = 4;

    TestMessage.NestedMessage c1 = 3;
  }

  optional AnotherTestMessage b = 2;

  optional TestMessage a = 1;
}

option go_package = "github.com/jhump/protoreflect/internal/testprotos";

import "pkg/desc_test_pkg.proto";

import "nopkg/desc_test_nopkg.proto";

import "desc_test1.proto";

package testprotos;
