//% descriptor: true
syntax = "proto2";

package buf.test;

import "google/protobuf/descriptor.proto";

option (x).b = {};
option (x).b = {};

option (x).b.a = {};

option (x).a.a = {};
option (x).a = {};
option (x).a.a.a = {};

option (x).(y).a = {};
option (x).(y) = {};
option (x).(y).a.(y) = {};

option (x).a.a.b = {};
option (x).a.a.b = {};

option (x).a.(z).a = {};
option (x).a.(z) = {};
option (x).a.(z) = {};

message Foo {
    optional Foo a = 1;
    repeated Foo b = 2;
    extensions 1000 to max;
}

extend google.protobuf.FileOptions {
    optional Foo x = 1000;
}

extend Foo {
    optional Foo y = 1000;
    repeated Foo z = 1001;
}