{
  "name": "google/protobuf/cpp_features.proto",
  "package": "pb",
  "dependency": [
    "google/protobuf/descriptor.proto"
  ],
  "message_type": [
    {
      "name": "CppFeatures",
      "field": [
        {
          "name": "legacy_closed_enum",
          "number": 1,
          "label": "LABEL_OPTIONAL",
          "type": "TYPE_BOOL",
          "options": {
            "retention": "RETENTION_RUNTIME",
            "targets": [
              "TARGET_TYPE_FIELD",
              "TARGET_TYPE_FILE"
            ],
            "edition_defaults": [
              {
                "value": "true",
                "edition": "EDITION_LEGACY"
              },
              {
                "value": "false",
                "edition": "EDITION_PROTO3"
              }
            ],
            "feature_support": {
              "edition_introduced": "EDITION_2023",
              "edition_deprecated": "EDITION_2023",
              "deprecation_warning": "The legacy closed enum behavior in C++ is deprecated and is scheduled to be removed in edition 2025.  See http://protobuf.dev/programming-guides/enum/#cpp for more information"
            }
          }
        },
        {
          "name": "string_type",
          "number": 2,
          "label": "LABEL_OPTIONAL",
          "type": "TYPE_ENUM",
          "type_name": ".pb.CppFeatures.StringType",
          "options": {
            "retention": "RETENTION_RUNTIME",
            "targets": [
              "TARGET_TYPE_FIELD",
              "TARGET_TYPE_FILE"
            ],
            "edition_defaults": [
              {
                "value": "STRING",
                "edition": "EDITION_LEGACY"
              },
              {
                "value": "VIEW",
                "edition": "EDITION_2024"
              }
            ],
            "feature_support": {
              "edition_introduced": "EDITION_2023"
            }
          }
        },
        {
          "name": "enum_name_uses_string_view",
          "number": 3,
          "label": "LABEL_OPTIONAL",
          "type": "TYPE_BOOL",
          "options": {
            "retention": "RETENTION_RUNTIME",
            "targets": [
              "TARGET_TYPE_ENUM",
              "TARGET_TYPE_FILE"
            ],
            "edition_defaults": [
              {
                "value": "false",
                "edition": "EDITION_LEGACY"
              },
              {
                "value": "true",
                "edition": "EDITION_2024"
              }
            ],
            "feature_support": {
              "edition_introduced": "EDITION_2024"
            }
          }
        },
        {
          "name": "repeated_type",
          "number": 4,
          "label": "LABEL_OPTIONAL",
          "type": "TYPE_ENUM",
          "type_name": ".pb.CppFeatures.RepeatedType",
          "options": {
            "retention": "RETENTION_RUNTIME",
            "targets": [
              "TARGET_TYPE_FIELD",
              "TARGET_TYPE_FILE"
            ],
            "edition_defaults": [
              {
                "value": "LEGACY",
                "edition": "EDITION_LEGACY"
              }
            ],
            "feature_support": {
              "edition_introduced": "EDITION_UNSTABLE"
            }
          }
        }
      ],
      "enum_type": [
        {
          "name": "StringType",
          "value": [
            {
              "name": "STRING_TYPE_UNKNOWN",
              "number": 0
            },
            {
              "name": "VIEW",
              "number": 1
            },
            {
              "name": "CORD",
              "number": 2
            },
            {
              "name": "STRING",
              "number": 3
            }
          ]
        },
        {
          "name": "RepeatedType",
          "value": [
            {
              "name": "REPEATED_TYPE_UNKNOWN",
              "number": 0
            },
            {
              "name": "LEGACY",
              "number": 1
            },
            {
              "name": "PROXY",
              "number": 2
            }
          ]
        }
      ]
    }
  ],
  "extension": [
    {
      "name": "cpp",
      "extendee": ".google.protobuf.FeatureSet",
      "number": 1000,
      "label": "LABEL_OPTIONAL",
      "type": "TYPE_MESSAGE",
      "type_name": ".pb.CppFeatures"
    }
  ]
}
