syntax = "proto2";

package google.protobuf;

option go_package = "google.golang.org/protobuf/types/descriptorpb";
option java_package = "com.google.protobuf";
option java_outer_classname = "DescriptorProtos";
option csharp_namespace = "Google.Protobuf.Reflection";
option objc_class_prefix = "GPB";
option cc_enable_arenas = true;

option optimize_for = SPEED;

message FileDescriptorSet {
  repeated FileDescriptorProto file = 1;

  extensions 536000000 [declaration = {
    number: 536000000
    type: ".buf.descriptor.v1.FileDescriptorSetExtension"
    full_name: ".buf.descriptor.v1.buf_file_descriptor_set_extension"
  }];
}

enum Edition {

  EDITION_UNKNOWN = 0;

  EDITION_LEGACY = 900;

  EDITION_PROTO2 = 998;
  EDITION_PROTO3 = 999;

  EDITION_2023 = 1000;
  EDITION_2024 = 1001;
  EDITION_2026 = 1002;

  EDITION_UNSTABLE = 9999;

  EDITION_1_TEST_ONLY = 1;
  EDITION_2_TEST_ONLY = 2;
  EDITION_99997_TEST_ONLY = 99997;
  EDITION_99998_TEST_ONLY = 99998;
  EDITION_99999_TEST_ONLY = 99999;

  EDITION_MAX = 0x7FFFFFFF;
}

message FileDescriptorProto {
  optional string name = 1;
  optional string package = 2;

  repeated string dependency = 3;

  repeated int32 public_dependency = 10;

  repeated int32 weak_

... [truncated 16838 chars] ...

: ".buf.descriptor.v1.SourceCodeInfoExtension"
    full_name: ".buf.descriptor.v1.buf_source_code_info_extension"
  }];
}

message GeneratedCodeInfo {

  repeated Annotation annotation = 1;
  message Annotation {

    repeated int32 path = 1 [packed = true];

    optional string source_file = 2;

    optional int32 begin = 3;

    optional int32 end = 4;

    enum Semantic {

      NONE = 0;

      SET = 1;

      ALIAS = 2;
    }
    optional Semantic semantic = 5;
  }
}

enum SymbolVisibility {
  VISIBILITY_UNSET = 0;
  VISIBILITY_LOCAL = 1;
  VISIBILITY_EXPORT = 2;
}