diff --git a/cmd/protoc-gen-go/feature_resolution_test/test_features_defaults.binpb b/cmd/protoc-gen-go/feature_resolution_test/test_features_defaults.binpb
index 35cfde2..8256cdb 100644
--- a/cmd/protoc-gen-go/feature_resolution_test/test_features_defaults.binpb
+++ b/cmd/protoc-gen-go/feature_resolution_test/test_features_defaults.binpb
Binary files differ
diff --git a/integration_test.go b/integration_test.go
index 152ba39..f0d09ac 100644
--- a/integration_test.go
+++ b/integration_test.go
@@ -33,7 +33,7 @@
 	regenerate   = flag.Bool("regenerate", false, "regenerate files")
 	buildRelease = flag.Bool("buildRelease", false, "build release binaries")
 
-	protobufVersion = "33.3"
+	protobufVersion = "35.1"
 
 	golangVersions = func() []string {
 		// Version policy: oldest supported version of Go, plus the version before that.
@@ -299,6 +299,9 @@
 				"bazel", "build",
 				":protoc",
 				"//conformance:conformance_test_runner",
+				// TODO: Remove flags once protobuf release is patched so this builds out-of-the-box.
+				"--//bazel/flags:prefer_prebuilt_protoc=false",
+				"--//bazel/flags:allow_nonstandard_protoc",
 			}
 			if runtime.GOOS == "darwin" {
 				// Adding this environment variable appears to be necessary for macOS builds.
@@ -502,7 +505,7 @@
 `),
 	// Generated .pb.go files from main protobuf repo.
 	regexp.MustCompile(`^// Protocol Buffers - Google's data interchange format
-// Copyright \d\d\d\d Google Inc\.  All rights reserved\.
+// Copyright \d\d\d\d Google (Inc|LLC)\.  All rights reserved\.
 `),
 }
 
diff --git a/internal/conformance/failing_tests.txt b/internal/conformance/failing_tests.txt
index eb45ea0..38735e4 100644
--- a/internal/conformance/failing_tests.txt
+++ b/internal/conformance/failing_tests.txt
@@ -1,2 +1,6 @@
 Recommended.Proto2.ProtobufInput.ValidMessageSetEncoding.SubmessageEncoding.ProtobufOutput # Output was not equivalent to reference message: deleted: message_set_correct.(protobuf_test_messages.proto2.TestAllTypesProto2.M
-
+Recommended.Editions.ProtobufInput.RejectInvalidUtf8.String.Extension # Should have failed to parse, but didn't.
+Required.Editions_Proto2.ProtobufInput.BadTag_OverlongVarint # Should have failed to parse, but didn't.
+Required.Editions_Proto3.ProtobufInput.BadTag_OverlongVarint # Should have failed to parse, but didn't.
+Required.Proto2.ProtobufInput.BadTag_OverlongVarint # Should have failed to parse, but didn't.
+Required.Proto3.ProtobufInput.BadTag_OverlongVarint # Should have failed to parse, but didn't.
diff --git a/internal/editiondefaults/editions_defaults.binpb b/internal/editiondefaults/editions_defaults.binpb
index 0469635..ad35ea4 100644
--- a/internal/editiondefaults/editions_defaults.binpb
+++ b/internal/editiondefaults/editions_defaults.binpb
Binary files differ
diff --git a/internal/genid/descriptor_gen.go b/internal/genid/descriptor_gen.go
index 65aaf4d..58aeff8 100644
--- a/internal/genid/descriptor_gen.go
+++ b/internal/genid/descriptor_gen.go
@@ -26,6 +26,7 @@
 	Edition_EDITION_PROTO3_enum_value          = 999
 	Edition_EDITION_2023_enum_value            = 1000
 	Edition_EDITION_2024_enum_value            = 1001
+	Edition_EDITION_2026_enum_value            = 1002
 	Edition_EDITION_UNSTABLE_enum_value        = 9999
 	Edition_EDITION_1_TEST_ONLY_enum_value     = 1
 	Edition_EDITION_2_TEST_ONLY_enum_value     = 2
@@ -806,11 +807,13 @@
 	FieldOptions_FeatureSupport_EditionDeprecated_field_name  protoreflect.Name = "edition_deprecated"
 	FieldOptions_FeatureSupport_DeprecationWarning_field_name protoreflect.Name = "deprecation_warning"
 	FieldOptions_FeatureSupport_EditionRemoved_field_name     protoreflect.Name = "edition_removed"
+	FieldOptions_FeatureSupport_RemovalError_field_name       protoreflect.Name = "removal_error"
 
 	FieldOptions_FeatureSupport_EditionIntroduced_field_fullname  protoreflect.FullName = "google.protobuf.FieldOptions.FeatureSupport.edition_introduced"
 	FieldOptions_FeatureSupport_EditionDeprecated_field_fullname  protoreflect.FullName = "google.protobuf.FieldOptions.FeatureSupport.edition_deprecated"
 	FieldOptions_FeatureSupport_DeprecationWarning_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.FeatureSupport.deprecation_warning"
 	FieldOptions_FeatureSupport_EditionRemoved_field_fullname     protoreflect.FullName = "google.protobuf.FieldOptions.FeatureSupport.edition_removed"
+	FieldOptions_FeatureSupport_RemovalError_field_fullname       protoreflect.FullName = "google.protobuf.FieldOptions.FeatureSupport.removal_error"
 )
 
 // Field numbers for google.protobuf.FieldOptions.FeatureSupport.
@@ -819,6 +822,7 @@
 	FieldOptions_FeatureSupport_EditionDeprecated_field_number  protoreflect.FieldNumber = 2
 	FieldOptions_FeatureSupport_DeprecationWarning_field_number protoreflect.FieldNumber = 3
 	FieldOptions_FeatureSupport_EditionRemoved_field_number     protoreflect.FieldNumber = 4
+	FieldOptions_FeatureSupport_RemovalError_field_number       protoreflect.FieldNumber = 5
 )
 
 // Names for google.protobuf.OneofOptions.
@@ -1152,6 +1156,7 @@
 	FeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN_enum_value = 0
 	FeatureSet_STYLE2024_enum_value                    = 1
 	FeatureSet_STYLE_LEGACY_enum_value                 = 2
+	FeatureSet_STYLE2026_enum_value                    = 3
 )
 
 // Names for google.protobuf.FeatureSet.VisibilityFeature.
diff --git a/internal/testprotos/conformance/editions/test_messages_edition2023.pb.go b/internal/testprotos/conformance/editions/test_messages_edition2023.pb.go
index b0c6c68..8f0890a 100644
--- a/internal/testprotos/conformance/editions/test_messages_edition2023.pb.go
+++ b/internal/testprotos/conformance/editions/test_messages_edition2023.pb.go
@@ -271,9 +271,11 @@
 	//	*TestAllTypesEdition2023_OneofFloat
 	//	*TestAllTypesEdition2023_OneofDouble
 	//	*TestAllTypesEdition2023_OneofEnum
-	OneofField      isTestAllTypesEdition2023_OneofField   `protobuf_oneof:"oneof_field"`
-	Groupliketype   *TestAllTypesEdition2023_GroupLikeType `protobuf:"group,201,opt,name=GroupLikeType,json=groupliketype" json:"groupliketype,omitempty"`
-	DelimitedField  *TestAllTypesEdition2023_GroupLikeType `protobuf:"group,202,opt,name=GroupLikeType,json=delimitedField" json:"delimited_field,omitempty"`
+	OneofField     isTestAllTypesEdition2023_OneofField   `protobuf_oneof:"oneof_field"`
+	Groupliketype  *TestAllTypesEdition2023_GroupLikeType `protobuf:"group,201,opt,name=GroupLikeType,json=groupliketype" json:"groupliketype,omitempty"`
+	DelimitedField *TestAllTypesEdition2023_GroupLikeType `protobuf:"group,202,opt,name=GroupLikeType,json=delimitedField" json:"delimited_field,omitempty"`
+	// recursive
+	MapRecursive    map[int32]*TestAllTypesEdition2023 `protobuf:"bytes,301,rep,name=map_recursive,json=mapRecursive" json:"map_recursive,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	extensionFields protoimpl.ExtensionFields
 	unknownFields   protoimpl.UnknownFields
 	sizeCache       protoimpl.SizeCache
@@ -1041,6 +1043,13 @@
 	return nil
 }
 
+func (x *TestAllTypesEdition2023) GetMapRecursive() map[int32]*TestAllTypesEdition2023 {
+	if x != nil {
+		return x.MapRecursive
+	}
+	return nil
+}
+
 type isTestAllTypesEdition2023_OneofField interface {
 	isTestAllTypesEdition2023_OneofField()
 }
@@ -1303,6 +1312,22 @@
 	},
 	{
 		ExtendedType:  (*TestAllTypesEdition2023)(nil),
+		ExtensionType: (*string)(nil),
+		Field:         133,
+		Name:          "protobuf_test_messages.editions.extension_string",
+		Tag:           "bytes,133,opt,name=extension_string",
+		Filename:      "conformance/test_protos/test_messages_edition2023.proto",
+	},
+	{
+		ExtendedType:  (*TestAllTypesEdition2023)(nil),
+		ExtensionType: ([]byte)(nil),
+		Field:         134,
+		Name:          "protobuf_test_messages.editions.extension_bytes",
+		Tag:           "bytes,134,opt,name=extension_bytes",
+		Filename:      "conformance/test_protos/test_messages_edition2023.proto",
+	},
+	{
+		ExtendedType:  (*TestAllTypesEdition2023)(nil),
 		ExtensionType: (*GroupLikeType)(nil),
 		Field:         121,
 		Name:          "protobuf_test_messages.editions.groupliketype",
@@ -1323,10 +1348,14 @@
 var (
 	// optional int32 extension_int32 = 120;
 	E_ExtensionInt32 = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[0]
+	// optional string extension_string = 133;
+	E_ExtensionString = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[1]
+	// optional bytes extension_bytes = 134;
+	E_ExtensionBytes = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[2]
 	// optional protobuf_test_messages.editions.GroupLikeType groupliketype = 121;
-	E_Groupliketype = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[1]
+	E_Groupliketype = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[3]
 	// optional protobuf_test_messages.editions.GroupLikeType delimited_ext = 122;
-	E_DelimitedExt = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[2]
+	E_DelimitedExt = &file_conformance_test_protos_test_messages_edition2023_proto_extTypes[4]
 )
 
 var File_conformance_test_protos_test_messages_edition2023_proto protoreflect.FileDescriptor
@@ -1335,7 +1364,7 @@
 	"\n" +
 	"7conformance/test_protos/test_messages_edition2023.proto\x12\x1fprotobuf_test_messages.editions\"\x1e\n" +
 	"\x0eComplexMessage\x12\f\n" +
-	"\x01d\x18\x01 \x01(\x05R\x01d\"\x9fF\n" +
+	"\x01d\x18\x01 \x01(\x05R\x01d\"\x8cH\n" +
 	"\x17TestAllTypesEdition2023\x12%\n" +
 	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12%\n" +
 	"\x0eoptional_int64\x18\x02 \x01(\x03R\roptionalInt64\x12'\n" +
@@ -1443,7 +1472,8 @@
 	"\n" +
 	"oneof_enum\x18w \x01(\x0e2C.protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnumH\x00R\toneofEnum\x12m\n" +
 	"\rgroupliketype\x18\xc9\x01 \x01(\v2F.protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeTypeR\rgroupliketype\x12p\n" +
-	"\x0fdelimited_field\x18\xca\x01 \x01(\v2F.protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeTypeR\x0edelimitedField\x1a\x80\x01\n" +
+	"\x0fdelimited_field\x18\xca\x01 \x01(\v2F.protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeTypeR\x0edelimitedField\x12p\n" +
+	"\rmap_recursive\x18\xad\x02 \x03(\v2J.protobuf_test_messages.editions.TestAllTypesEdition2023.MapRecursiveEntryR\fmapRecursive\x1a\x80\x01\n" +
 	"\rNestedMessage\x12\f\n" +
 	"\x01a\x18\x01 \x01(\x05R\x01a\x12a\n" +
 	"\vcorecursive\x18\x02 \x01(\v28.protobuf_test_messages.editions.TestAllTypesEdition2023B\x05\xaa\x01\x02(\x01R\vcorecursive\x1a@\n" +
@@ -1507,7 +1537,10 @@
 	"\rGroupLikeType\x12 \n" +
 	"\vgroup_int32\x18\xca\x01 \x01(\x05R\n" +
 	"groupInt32\x12\"\n" +
-	"\fgroup_uint32\x18\xcb\x01 \x01(\rR\vgroupUint32\"9\n" +
+	"\fgroup_uint32\x18\xcb\x01 \x01(\rR\vgroupUint32\x1ay\n" +
+	"\x11MapRecursiveEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\x05R\x03key\x12N\n" +
+	"\x05value\x18\x02 \x01(\v28.protobuf_test_messages.editions.TestAllTypesEdition2023R\x05value:\x028\x01\"9\n" +
 	"\n" +
 	"NestedEnum\x12\a\n" +
 	"\x03FOO\x10\x00\x12\a\n" +
@@ -1523,7 +1556,9 @@
 	"\vFOREIGN_FOO\x10\x00\x12\x0f\n" +
 	"\vFOREIGN_BAR\x10\x01\x12\x0f\n" +
 	"\vFOREIGN_BAZ\x10\x02:a\n" +
-	"\x0fextension_int32\x128.protobuf_test_messages.editions.TestAllTypesEdition2023\x18x \x01(\x05R\x0eextensionInt32:\x8e\x01\n" +
+	"\x0fextension_int32\x128.protobuf_test_messages.editions.TestAllTypesEdition2023\x18x \x01(\x05R\x0eextensionInt32:d\n" +
+	"\x10extension_string\x128.protobuf_test_messages.editions.TestAllTypesEdition2023\x18\x85\x01 \x01(\tR\x0fextensionString:b\n" +
+	"\x0fextension_bytes\x128.protobuf_test_messages.editions.TestAllTypesEdition2023\x18\x86\x01 \x01(\fR\x0eextensionBytes:\x8e\x01\n" +
 	"\rgroupliketype\x128.protobuf_test_messages.editions.TestAllTypesEdition2023\x18y \x01(\v2..protobuf_test_messages.editions.GroupLikeTypeR\rgroupliketype:\x8d\x01\n" +
 	"\rdelimited_ext\x128.protobuf_test_messages.editions.TestAllTypesEdition2023\x18z \x01(\v2..protobuf_test_messages.editions.GroupLikeTypeR\fdelimitedExtBA\n" +
 	"-com.google.protobuf_test_messages.edition2023P\x01\xa2\x02\bEditions\x92\x03\x02(\x02b\beditionsp\xe8\a"
@@ -1541,7 +1576,7 @@
 }
 
 var file_conformance_test_protos_test_messages_edition2023_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_conformance_test_protos_test_messages_edition2023_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
+var file_conformance_test_protos_test_messages_edition2023_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
 var file_conformance_test_protos_test_messages_edition2023_proto_goTypes = []any{
 	(ForeignEnumEdition2023)(0),                   // 0: protobuf_test_messages.editions.ForeignEnumEdition2023
 	(TestAllTypesEdition2023_NestedEnum)(0),       // 1: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum
@@ -1570,6 +1605,7 @@
 	nil, // 24: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringNestedEnumEntry
 	nil, // 25: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringForeignEnumEntry
 	(*TestAllTypesEdition2023_GroupLikeType)(nil), // 26: protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType
+	nil, // 27: protobuf_test_messages.editions.TestAllTypesEdition2023.MapRecursiveEntry
 }
 var file_conformance_test_protos_test_messages_edition2023_proto_depIdxs = []int32{
 	6,  // 0: protobuf_test_messages.editions.TestAllTypesEdition2023.optional_nested_message:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage
@@ -1606,21 +1642,25 @@
 	1,  // 31: protobuf_test_messages.editions.TestAllTypesEdition2023.oneof_enum:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum
 	26, // 32: protobuf_test_messages.editions.TestAllTypesEdition2023.groupliketype:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType
 	26, // 33: protobuf_test_messages.editions.TestAllTypesEdition2023.delimited_field:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType
-	3,  // 34: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage.corecursive:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023
-	6,  // 35: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage
-	4,  // 36: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.editions.ForeignMessageEdition2023
-	1,  // 37: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum
-	0,  // 38: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.editions.ForeignEnumEdition2023
-	3,  // 39: protobuf_test_messages.editions.extension_int32:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
-	3,  // 40: protobuf_test_messages.editions.groupliketype:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
-	3,  // 41: protobuf_test_messages.editions.delimited_ext:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
-	5,  // 42: protobuf_test_messages.editions.groupliketype:type_name -> protobuf_test_messages.editions.GroupLikeType
-	5,  // 43: protobuf_test_messages.editions.delimited_ext:type_name -> protobuf_test_messages.editions.GroupLikeType
-	44, // [44:44] is the sub-list for method output_type
-	44, // [44:44] is the sub-list for method input_type
-	42, // [42:44] is the sub-list for extension type_name
-	39, // [39:42] is the sub-list for extension extendee
-	0,  // [0:39] is the sub-list for field type_name
+	27, // 34: protobuf_test_messages.editions.TestAllTypesEdition2023.map_recursive:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.MapRecursiveEntry
+	3,  // 35: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage.corecursive:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	6,  // 36: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage
+	4,  // 37: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.editions.ForeignMessageEdition2023
+	1,  // 38: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum
+	0,  // 39: protobuf_test_messages.editions.TestAllTypesEdition2023.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.editions.ForeignEnumEdition2023
+	3,  // 40: protobuf_test_messages.editions.TestAllTypesEdition2023.MapRecursiveEntry.value:type_name -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	3,  // 41: protobuf_test_messages.editions.extension_int32:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	3,  // 42: protobuf_test_messages.editions.extension_string:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	3,  // 43: protobuf_test_messages.editions.extension_bytes:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	3,  // 44: protobuf_test_messages.editions.groupliketype:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	3,  // 45: protobuf_test_messages.editions.delimited_ext:extendee -> protobuf_test_messages.editions.TestAllTypesEdition2023
+	5,  // 46: protobuf_test_messages.editions.groupliketype:type_name -> protobuf_test_messages.editions.GroupLikeType
+	5,  // 47: protobuf_test_messages.editions.delimited_ext:type_name -> protobuf_test_messages.editions.GroupLikeType
+	48, // [48:48] is the sub-list for method output_type
+	48, // [48:48] is the sub-list for method input_type
+	46, // [46:48] is the sub-list for extension type_name
+	41, // [41:46] is the sub-list for extension extendee
+	0,  // [0:41] is the sub-list for field type_name
 }
 
 func init() { file_conformance_test_protos_test_messages_edition2023_proto_init() }
@@ -1645,8 +1685,8 @@
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: unsafe.Slice(unsafe.StringData(file_conformance_test_protos_test_messages_edition2023_proto_rawDesc), len(file_conformance_test_protos_test_messages_edition2023_proto_rawDesc)),
 			NumEnums:      2,
-			NumMessages:   25,
-			NumExtensions: 3,
+			NumMessages:   26,
+			NumExtensions: 5,
 			NumServices:   0,
 		},
 		GoTypes:           file_conformance_test_protos_test_messages_edition2023_proto_goTypes,
diff --git a/internal/testprotos/conformance/editionsmigration/test_messages_proto2_editions.pb.go b/internal/testprotos/conformance/editionsmigration/test_messages_proto2_editions.pb.go
index 1935e12..8dc0c80 100644
--- a/internal/testprotos/conformance/editionsmigration/test_messages_proto2_editions.pb.go
+++ b/internal/testprotos/conformance/editionsmigration/test_messages_proto2_editions.pb.go
@@ -2581,8 +2581,9 @@
 }
 
 type TestAllTypesProto2_MessageSetCorrectExtension2 struct {
-	state         protoimpl.MessageState `protogen:"open.v1"`
-	I             *int32                 `protobuf:"varint,9,opt,name=i" json:"i,omitempty"`
+	state         protoimpl.MessageState                `protogen:"open.v1"`
+	I             *int32                                `protobuf:"varint,9,opt,name=i" json:"i,omitempty"`
+	SubMsg        *TestAllTypesProto2_MessageSetCorrect `protobuf:"bytes,10,opt,name=sub_msg,json=subMsg" json:"sub_msg,omitempty"`
 	unknownFields protoimpl.UnknownFields
 	sizeCache     protoimpl.SizeCache
 }
@@ -2624,6 +2625,13 @@
 	return 0
 }
 
+func (x *TestAllTypesProto2_MessageSetCorrectExtension2) GetSubMsg() *TestAllTypesProto2_MessageSetCorrect {
+	if x != nil {
+		return x.SubMsg
+	}
+	return nil
+}
+
 type TestAllTypesProto2_ExtensionWithOneof struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to OneofField:
@@ -3182,6 +3190,22 @@
 	},
 	{
 		ExtendedType:  (*TestAllTypesProto2)(nil),
+		ExtensionType: (*string)(nil),
+		Field:         133,
+		Name:          "protobuf_test_messages.editions.proto2.extension_string",
+		Tag:           "bytes,133,opt,name=extension_string",
+		Filename:      "editions/golden/test_messages_proto2_editions.proto",
+	},
+	{
+		ExtendedType:  (*TestAllTypesProto2)(nil),
+		ExtensionType: ([]byte)(nil),
+		Field:         134,
+		Name:          "protobuf_test_messages.editions.proto2.extension_bytes",
+		Tag:           "bytes,134,opt,name=extension_bytes",
+		Filename:      "editions/golden/test_messages_proto2_editions.proto",
+	},
+	{
+		ExtendedType:  (*TestAllTypesProto2)(nil),
 		ExtensionType: (*GroupField)(nil),
 		Field:         121,
 		Name:          "protobuf_test_messages.editions.proto2.groupfield",
@@ -3234,33 +3258,37 @@
 var (
 	// optional int32 extension_int32 = 120;
 	E_ExtensionInt32 = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[0]
+	// optional string extension_string = 133;
+	E_ExtensionString = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[1]
+	// optional bytes extension_bytes = 134;
+	E_ExtensionBytes = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[2]
 	// optional protobuf_test_messages.editions.proto2.GroupField groupfield = 121;
-	E_Groupfield = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[1]
+	E_Groupfield = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[3]
 )
 
 // Extension fields to TestAllTypesProto2_MessageSetCorrect.
 var (
 	// optional protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769;
-	E_TestAllTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[2]
+	E_TestAllTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[4]
 	// optional protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312;
-	E_TestAllTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[3]
+	E_TestAllTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[5]
 	// optional protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof extension_with_oneof = 123456789;
-	E_TestAllTypesProto2_ExtensionWithOneof_ExtensionWithOneof = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[4]
+	E_TestAllTypesProto2_ExtensionWithOneof_ExtensionWithOneof = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[6]
 )
 
 // Extension fields to TestAllRequiredTypesProto2_MessageSetCorrect.
 var (
 	// optional protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769;
-	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[5]
+	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[7]
 	// optional protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312;
-	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[6]
+	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_editions_golden_test_messages_proto2_editions_proto_extTypes[8]
 )
 
 var File_editions_golden_test_messages_proto2_editions_proto protoreflect.FileDescriptor
 
 const file_editions_golden_test_messages_proto2_editions_proto_rawDesc = "" +
 	"\n" +
-	"3editions/golden/test_messages_proto2_editions.proto\x12&protobuf_test_messages.editions.proto2\"\xaa]\n" +
+	"3editions/golden/test_messages_proto2_editions.proto\x12&protobuf_test_messages.editions.proto2\"\x91^\n" +
 	"\x12TestAllTypesProto2\x12%\n" +
 	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12%\n" +
 	"\x0eoptional_int64\x18\x02 \x01(\x03R\roptionalInt64\x12'\n" +
@@ -3497,9 +3525,11 @@
 	"\x11MessageSetCorrect*\b\b\x04\x10\xff\xff\xff\xff\a:\x02\b\x01\x1a\x8c\x02\n" +
 	"\x1bMessageSetCorrectExtension1\x12\x10\n" +
 	"\x03str\x18\x19 \x01(\tR\x03str2\xda\x01\n" +
-	"\x15message_set_extension\x12L.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect\x18\xf9\xbb^ \x01(\v2V.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1R\x13messageSetExtension\x1a\x89\x02\n" +
+	"\x15message_set_extension\x12L.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect\x18\xf9\xbb^ \x01(\v2V.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1R\x13messageSetExtension\x1a\xf0\x02\n" +
 	"\x1bMessageSetCorrectExtension2\x12\f\n" +
-	"\x01i\x18\t \x01(\x05R\x01i2\xdb\x01\n" +
+	"\x01i\x18\t \x01(\x05R\x01i\x12e\n" +
+	"\asub_msg\x18\n" +
+	" \x01(\v2L.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectR\x06subMsg2\xdb\x01\n" +
 	"\x15message_set_extension\x12L.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect\x18\x90\xb3\xfc\x01 \x01(\v2V.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2R\x13messageSetExtension\x1a\x96\x02\n" +
 	"\x12ExtensionWithOneof\x12\x0e\n" +
 	"\x01a\x18\x01 \x01(\x05H\x00R\x01a\x12\x0e\n" +
@@ -3624,7 +3654,9 @@
 	"\vFOREIGN_FOO\x10\x00\x12\x0f\n" +
 	"\vFOREIGN_BAR\x10\x01\x12\x0f\n" +
 	"\vFOREIGN_BAZ\x10\x02:c\n" +
-	"\x0fextension_int32\x12:.protobuf_test_messages.editions.proto2.TestAllTypesProto2\x18x \x01(\x05R\x0eextensionInt32:\x95\x01\n" +
+	"\x0fextension_int32\x12:.protobuf_test_messages.editions.proto2.TestAllTypesProto2\x18x \x01(\x05R\x0eextensionInt32:f\n" +
+	"\x10extension_string\x12:.protobuf_test_messages.editions.proto2.TestAllTypesProto2\x18\x85\x01 \x01(\tR\x0fextensionString:d\n" +
+	"\x0fextension_bytes\x12:.protobuf_test_messages.editions.proto2.TestAllTypesProto2\x18\x86\x01 \x01(\fR\x0eextensionBytes:\x95\x01\n" +
 	"\n" +
 	"groupfield\x12:.protobuf_test_messages.editions.proto2.TestAllTypesProto2\x18y \x01(\v22.protobuf_test_messages.editions.proto2.GroupFieldB\x05\xaa\x01\x02(\x02R\n" +
 	"groupfieldBR\n" +
@@ -3757,26 +3789,29 @@
 	5,  // 54: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.editions.proto2.ForeignMessageProto2
 	1,  // 55: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum
 	0,  // 56: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.editions.proto2.ForeignEnumProto2
-	12, // 57: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2
-	12, // 58: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage.optional_corecursive:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2
-	4,  // 59: protobuf_test_messages.editions.proto2.extension_int32:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2
-	4,  // 60: protobuf_test_messages.editions.proto2.groupfield:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2
-	38, // 61: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
-	38, // 62: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
-	38, // 63: protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
-	45, // 64: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
-	45, // 65: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
-	6,  // 66: protobuf_test_messages.editions.proto2.groupfield:type_name -> protobuf_test_messages.editions.proto2.GroupField
-	39, // 67: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1
-	40, // 68: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
-	41, // 69: protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof
-	46, // 70: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1
-	47, // 71: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2
-	72, // [72:72] is the sub-list for method output_type
-	72, // [72:72] is the sub-list for method input_type
-	66, // [66:72] is the sub-list for extension type_name
-	59, // [59:66] is the sub-list for extension extendee
-	0,  // [0:59] is the sub-list for field type_name
+	38, // 57: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.sub_msg:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
+	12, // 58: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2
+	12, // 59: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage.optional_corecursive:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2
+	4,  // 60: protobuf_test_messages.editions.proto2.extension_int32:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2
+	4,  // 61: protobuf_test_messages.editions.proto2.extension_string:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2
+	4,  // 62: protobuf_test_messages.editions.proto2.extension_bytes:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2
+	4,  // 63: protobuf_test_messages.editions.proto2.groupfield:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2
+	38, // 64: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
+	38, // 65: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
+	38, // 66: protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:extendee -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect
+	45, // 67: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
+	45, // 68: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
+	6,  // 69: protobuf_test_messages.editions.proto2.groupfield:type_name -> protobuf_test_messages.editions.proto2.GroupField
+	39, // 70: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1
+	40, // 71: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
+	41, // 72: protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:type_name -> protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof
+	46, // 73: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1
+	47, // 74: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2
+	75, // [75:75] is the sub-list for method output_type
+	75, // [75:75] is the sub-list for method input_type
+	69, // [69:75] is the sub-list for extension type_name
+	60, // [60:69] is the sub-list for extension extendee
+	0,  // [0:60] is the sub-list for field type_name
 }
 
 func init() { file_editions_golden_test_messages_proto2_editions_proto_init() }
@@ -3813,7 +3848,7 @@
 			RawDescriptor: unsafe.Slice(unsafe.StringData(file_editions_golden_test_messages_proto2_editions_proto_rawDesc), len(file_editions_golden_test_messages_proto2_editions_proto_rawDesc)),
 			NumEnums:      4,
 			NumMessages:   49,
-			NumExtensions: 7,
+			NumExtensions: 9,
 			NumServices:   0,
 		},
 		GoTypes:           file_editions_golden_test_messages_proto2_editions_proto_goTypes,
diff --git a/internal/testprotos/conformance/editionsmigration/test_messages_proto3_editions.pb.go b/internal/testprotos/conformance/editionsmigration/test_messages_proto3_editions.pb.go
index 1aa0df6..b2054e7 100644
--- a/internal/testprotos/conformance/editionsmigration/test_messages_proto3_editions.pb.go
+++ b/internal/testprotos/conformance/editionsmigration/test_messages_proto3_editions.pb.go
@@ -22,6 +22,7 @@
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 	anypb "google.golang.org/protobuf/types/known/anypb"
 	durationpb "google.golang.org/protobuf/types/known/durationpb"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
 	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
 	structpb "google.golang.org/protobuf/types/known/structpb"
 	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
@@ -381,6 +382,7 @@
 	OptionalAny           *anypb.Any                `protobuf:"bytes,305,opt,name=optional_any,json=optionalAny" json:"optional_any,omitempty"`
 	OptionalValue         *structpb.Value           `protobuf:"bytes,306,opt,name=optional_value,json=optionalValue" json:"optional_value,omitempty"`
 	OptionalNullValue     structpb.NullValue        `protobuf:"varint,307,opt,name=optional_null_value,json=optionalNullValue,enum=google.protobuf.NullValue" json:"optional_null_value,omitempty"`
+	OptionalEmpty         *emptypb.Empty            `protobuf:"bytes,308,opt,name=optional_empty,json=optionalEmpty" json:"optional_empty,omitempty"`
 	RepeatedDuration      []*durationpb.Duration    `protobuf:"bytes,311,rep,name=repeated_duration,json=repeatedDuration" json:"repeated_duration,omitempty"`
 	RepeatedTimestamp     []*timestamppb.Timestamp  `protobuf:"bytes,312,rep,name=repeated_timestamp,json=repeatedTimestamp" json:"repeated_timestamp,omitempty"`
 	RepeatedFieldmask     []*fieldmaskpb.FieldMask  `protobuf:"bytes,313,rep,name=repeated_fieldmask,json=repeatedFieldmask" json:"repeated_fieldmask,omitempty"`
@@ -388,6 +390,7 @@
 	RepeatedAny           []*anypb.Any              `protobuf:"bytes,315,rep,name=repeated_any,json=repeatedAny" json:"repeated_any,omitempty"`
 	RepeatedValue         []*structpb.Value         `protobuf:"bytes,316,rep,name=repeated_value,json=repeatedValue" json:"repeated_value,omitempty"`
 	RepeatedListValue     []*structpb.ListValue     `protobuf:"bytes,317,rep,name=repeated_list_value,json=repeatedListValue" json:"repeated_list_value,omitempty"`
+	RepeatedEmpty         []*emptypb.Empty          `protobuf:"bytes,318,rep,name=repeated_empty,json=repeatedEmpty" json:"repeated_empty,omitempty"`
 	// Test field-name-to-JSON-name convention.
 	// (protobuf says names can be any valid C/C++ identifier.)
 	Fieldname1    int32 `protobuf:"varint,401,opt,name=fieldname1" json:"fieldname1,omitempty"`
@@ -1351,6 +1354,13 @@
 	return structpb.NullValue(0)
 }
 
+func (x *TestAllTypesProto3) GetOptionalEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.OptionalEmpty
+	}
+	return nil
+}
+
 func (x *TestAllTypesProto3) GetRepeatedDuration() []*durationpb.Duration {
 	if x != nil {
 		return x.RepeatedDuration
@@ -1400,6 +1410,13 @@
 	return nil
 }
 
+func (x *TestAllTypesProto3) GetRepeatedEmpty() []*emptypb.Empty {
+	if x != nil {
+		return x.RepeatedEmpty
+	}
+	return nil
+}
+
 func (x *TestAllTypesProto3) GetFieldname1() int32 {
 	if x != nil {
 		return x.Fieldname1
@@ -1762,7 +1779,7 @@
 
 const file_editions_golden_test_messages_proto3_editions_proto_rawDesc = "" +
 	"\n" +
-	"3editions/golden/test_messages_proto3_editions.proto\x12&protobuf_test_messages.editions.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x83^\n" +
+	"3editions/golden/test_messages_proto3_editions.proto\x12&protobuf_test_messages.editions.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x83_\n" +
 	"\x12TestAllTypesProto3\x12%\n" +
 	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12%\n" +
 	"\x0eoptional_int64\x18\x02 \x01(\x03R\roptionalInt64\x12'\n" +
@@ -1895,14 +1912,16 @@
 	"\x0foptional_struct\x18\xb0\x02 \x01(\v2\x17.google.protobuf.StructR\x0eoptionalStruct\x128\n" +
 	"\foptional_any\x18\xb1\x02 \x01(\v2\x14.google.protobuf.AnyR\voptionalAny\x12>\n" +
 	"\x0eoptional_value\x18\xb2\x02 \x01(\v2\x16.google.protobuf.ValueR\roptionalValue\x12K\n" +
-	"\x13optional_null_value\x18\xb3\x02 \x01(\x0e2\x1a.google.protobuf.NullValueR\x11optionalNullValue\x12G\n" +
+	"\x13optional_null_value\x18\xb3\x02 \x01(\x0e2\x1a.google.protobuf.NullValueR\x11optionalNullValue\x12>\n" +
+	"\x0eoptional_empty\x18\xb4\x02 \x01(\v2\x16.google.protobuf.EmptyR\roptionalEmpty\x12G\n" +
 	"\x11repeated_duration\x18\xb7\x02 \x03(\v2\x19.google.protobuf.DurationR\x10repeatedDuration\x12J\n" +
 	"\x12repeated_timestamp\x18\xb8\x02 \x03(\v2\x1a.google.protobuf.TimestampR\x11repeatedTimestamp\x12J\n" +
 	"\x12repeated_fieldmask\x18\xb9\x02 \x03(\v2\x1a.google.protobuf.FieldMaskR\x11repeatedFieldmask\x12A\n" +
 	"\x0frepeated_struct\x18\xc4\x02 \x03(\v2\x17.google.protobuf.StructR\x0erepeatedStruct\x128\n" +
 	"\frepeated_any\x18\xbb\x02 \x03(\v2\x14.google.protobuf.AnyR\vrepeatedAny\x12>\n" +
 	"\x0erepeated_value\x18\xbc\x02 \x03(\v2\x16.google.protobuf.ValueR\rrepeatedValue\x12K\n" +
-	"\x13repeated_list_value\x18\xbd\x02 \x03(\v2\x1a.google.protobuf.ListValueR\x11repeatedListValue\x12\x1f\n" +
+	"\x13repeated_list_value\x18\xbd\x02 \x03(\v2\x1a.google.protobuf.ListValueR\x11repeatedListValue\x12>\n" +
+	"\x0erepeated_empty\x18\xbe\x02 \x03(\v2\x16.google.protobuf.EmptyR\rrepeatedEmpty\x12\x1f\n" +
 	"\n" +
 	"fieldname1\x18\x91\x03 \x01(\x05R\n" +
 	"fieldname1\x12 \n" +
@@ -2078,7 +2097,8 @@
 	(*structpb.Struct)(nil),                  // 41: google.protobuf.Struct
 	(*anypb.Any)(nil),                        // 42: google.protobuf.Any
 	(*structpb.Value)(nil),                   // 43: google.protobuf.Value
-	(*structpb.ListValue)(nil),               // 44: google.protobuf.ListValue
+	(*emptypb.Empty)(nil),                    // 44: google.protobuf.Empty
+	(*structpb.ListValue)(nil),               // 45: google.protobuf.ListValue
 }
 var file_editions_golden_test_messages_proto3_editions_proto_depIdxs = []int32{
 	8,  // 0: protobuf_test_messages.editions.proto3.TestAllTypesProto3.optional_nested_message:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage
@@ -2140,23 +2160,25 @@
 	42, // 56: protobuf_test_messages.editions.proto3.TestAllTypesProto3.optional_any:type_name -> google.protobuf.Any
 	43, // 57: protobuf_test_messages.editions.proto3.TestAllTypesProto3.optional_value:type_name -> google.protobuf.Value
 	28, // 58: protobuf_test_messages.editions.proto3.TestAllTypesProto3.optional_null_value:type_name -> google.protobuf.NullValue
-	38, // 59: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration
-	39, // 60: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp
-	40, // 61: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask
-	41, // 62: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct
-	42, // 63: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any
-	43, // 64: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value
-	44, // 65: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue
-	4,  // 66: protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3
-	8,  // 67: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage
-	5,  // 68: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.editions.proto3.ForeignMessage
-	1,  // 69: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum
-	0,  // 70: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.editions.proto3.ForeignEnum
-	71, // [71:71] is the sub-list for method output_type
-	71, // [71:71] is the sub-list for method input_type
-	71, // [71:71] is the sub-list for extension type_name
-	71, // [71:71] is the sub-list for extension extendee
-	0,  // [0:71] is the sub-list for field type_name
+	44, // 59: protobuf_test_messages.editions.proto3.TestAllTypesProto3.optional_empty:type_name -> google.protobuf.Empty
+	38, // 60: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration
+	39, // 61: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp
+	40, // 62: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask
+	41, // 63: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct
+	42, // 64: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any
+	43, // 65: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value
+	45, // 66: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue
+	44, // 67: protobuf_test_messages.editions.proto3.TestAllTypesProto3.repeated_empty:type_name -> google.protobuf.Empty
+	4,  // 68: protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3
+	8,  // 69: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage
+	5,  // 70: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.editions.proto3.ForeignMessage
+	1,  // 71: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum
+	0,  // 72: protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.editions.proto3.ForeignEnum
+	73, // [73:73] is the sub-list for method output_type
+	73, // [73:73] is the sub-list for method input_type
+	73, // [73:73] is the sub-list for extension type_name
+	73, // [73:73] is the sub-list for extension extendee
+	0,  // [0:73] is the sub-list for field type_name
 }
 
 func init() { file_editions_golden_test_messages_proto3_editions_proto_init() }
diff --git a/internal/testprotos/conformance/editionunstable/test_messages_edition_unstable.pb.go b/internal/testprotos/conformance/editionunstable/test_messages_edition_unstable.pb.go
index d3e2965..c497c3a 100644
--- a/internal/testprotos/conformance/editionunstable/test_messages_edition_unstable.pb.go
+++ b/internal/testprotos/conformance/editionunstable/test_messages_edition_unstable.pb.go
@@ -63,7 +63,7 @@
 
 type ComplexMessage struct {
 	state                  protoimpl.MessageState `protogen:"opaque.v1"`
-	xxx_hidden_D           int32                  `protobuf:"varint,1,opt,name=d"`
+	xxx_hidden_D           int32                  `protobuf:"fixed32,1,opt,name=d"`
 	XXX_raceDetectHookData protoimpl.RaceDetectHookData
 	XXX_presence           [1]uint32
 	unknownFields          protoimpl.UnknownFields
@@ -138,18 +138,21 @@
 
 type TestAllTypesEditionUnstable struct {
 	state                              protoimpl.MessageState                    `protogen:"opaque.v1"`
-	xxx_hidden_OptionalInt32           int32                                     `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32"`
+	xxx_hidden_OptionalInt32           int32                                     `protobuf:"fixed32,1,opt,name=optional_int32,json=optionalInt32"`
 	xxx_hidden_OptionalForeignMessage  *ForeignMessageEditionUnstable            `protobuf:"bytes,2,opt,name=optional_foreign_message,json=optionalForeignMessage"`
 	xxx_hidden_OptionalForeignEnum     ForeignEnumEditionUnstable                `protobuf:"varint,3,opt,name=optional_foreign_enum,json=optionalForeignEnum,enum=protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstable"`
 	xxx_hidden_RecursiveMessage        *TestAllTypesEditionUnstable              `protobuf:"bytes,4,opt,name=recursive_message,json=recursiveMessage"`
-	xxx_hidden_RepeatedInt32           []int32                                   `protobuf:"varint,5,rep,packed,name=repeated_int32,json=repeatedInt32"`
+	xxx_hidden_RepeatedInt32           []int32                                   `protobuf:"fixed32,5,rep,packed,name=repeated_int32,json=repeatedInt32"`
 	xxx_hidden_RepeatedForeignMessage  *[]*ForeignMessageEditionUnstable         `protobuf:"bytes,6,rep,name=repeated_foreign_message,json=repeatedForeignMessage"`
 	xxx_hidden_RepeatedForeignEnum     []ForeignEnumEditionUnstable              `protobuf:"varint,7,rep,packed,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstable"`
-	xxx_hidden_MapInt32Int32           map[int32]int32                           `protobuf:"bytes,8,rep,name=map_int32_int32,json=mapInt32Int32" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	xxx_hidden_MapInt32Int32           map[int32]int32                           `protobuf:"bytes,8,rep,name=map_int32_int32,json=mapInt32Int32" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
 	xxx_hidden_MapBoolBool             map[bool]bool                             `protobuf:"bytes,9,rep,name=map_bool_bool,json=mapBoolBool" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
 	xxx_hidden_MapStringString         map[string]string                         `protobuf:"bytes,10,rep,name=map_string_string,json=mapStringString" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	xxx_hidden_MapStringForeignMessage map[string]*ForeignMessageEditionUnstable `protobuf:"bytes,11,rep,name=map_string_foreign_message,json=mapStringForeignMessage" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	xxx_hidden_MapStringForeignEnum    map[string]ForeignEnumEditionUnstable     `protobuf:"bytes,12,rep,name=map_string_foreign_enum,json=mapStringForeignEnum" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstable"`
+	xxx_hidden_OptionalBytes           []byte                                    `protobuf:"bytes,13,opt,name=optional_bytes,json=optionalBytes"`
+	xxx_hidden_RepeatedBytes           [][]byte                                  `protobuf:"bytes,14,rep,name=repeated_bytes,json=repeatedBytes"`
+	xxx_hidden_MapStringBytes          map[string][]byte                         `protobuf:"bytes,15,rep,name=map_string_bytes,json=mapStringBytes" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	XXX_raceDetectHookData             protoimpl.RaceDetectHookData
 	XXX_presence                       [1]uint32
 	extensionFields                    protoimpl.ExtensionFields
@@ -270,9 +273,30 @@
 	return nil
 }
 
+func (x *TestAllTypesEditionUnstable) GetOptionalBytes() []byte {
+	if x != nil {
+		return x.xxx_hidden_OptionalBytes
+	}
+	return nil
+}
+
+func (x *TestAllTypesEditionUnstable) GetRepeatedBytes() [][]byte {
+	if x != nil {
+		return x.xxx_hidden_RepeatedBytes
+	}
+	return nil
+}
+
+func (x *TestAllTypesEditionUnstable) GetMapStringBytes() map[string][]byte {
+	if x != nil {
+		return x.xxx_hidden_MapStringBytes
+	}
+	return nil
+}
+
 func (x *TestAllTypesEditionUnstable) SetOptionalInt32(v int32) {
 	x.xxx_hidden_OptionalInt32 = v
-	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 12)
+	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 15)
 }
 
 func (x *TestAllTypesEditionUnstable) SetOptionalForeignMessage(v *ForeignMessageEditionUnstable) {
@@ -281,7 +305,7 @@
 
 func (x *TestAllTypesEditionUnstable) SetOptionalForeignEnum(v ForeignEnumEditionUnstable) {
 	x.xxx_hidden_OptionalForeignEnum = v
-	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 12)
+	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 15)
 }
 
 func (x *TestAllTypesEditionUnstable) SetRecursiveMessage(v *TestAllTypesEditionUnstable) {
@@ -320,6 +344,22 @@
 	x.xxx_hidden_MapStringForeignEnum = v
 }
 
+func (x *TestAllTypesEditionUnstable) SetOptionalBytes(v []byte) {
+	if v == nil {
+		v = []byte{}
+	}
+	x.xxx_hidden_OptionalBytes = v
+	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 12, 15)
+}
+
+func (x *TestAllTypesEditionUnstable) SetRepeatedBytes(v [][]byte) {
+	x.xxx_hidden_RepeatedBytes = v
+}
+
+func (x *TestAllTypesEditionUnstable) SetMapStringBytes(v map[string][]byte) {
+	x.xxx_hidden_MapStringBytes = v
+}
+
 func (x *TestAllTypesEditionUnstable) HasOptionalInt32() bool {
 	if x == nil {
 		return false
@@ -348,6 +388,13 @@
 	return x.xxx_hidden_RecursiveMessage != nil
 }
 
+func (x *TestAllTypesEditionUnstable) HasOptionalBytes() bool {
+	if x == nil {
+		return false
+	}
+	return protoimpl.X.Present(&(x.XXX_presence[0]), 12)
+}
+
 func (x *TestAllTypesEditionUnstable) ClearOptionalInt32() {
 	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
 	x.xxx_hidden_OptionalInt32 = 0
@@ -366,6 +413,11 @@
 	x.xxx_hidden_RecursiveMessage = nil
 }
 
+func (x *TestAllTypesEditionUnstable) ClearOptionalBytes() {
+	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 12)
+	x.xxx_hidden_OptionalBytes = nil
+}
+
 type TestAllTypesEditionUnstable_builder struct {
 	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.
 
@@ -384,6 +436,10 @@
 	MapStringString         map[string]string
 	MapStringForeignMessage map[string]*ForeignMessageEditionUnstable
 	MapStringForeignEnum    map[string]ForeignEnumEditionUnstable
+	// bytes
+	OptionalBytes  []byte
+	RepeatedBytes  [][]byte
+	MapStringBytes map[string][]byte
 }
 
 func (b0 TestAllTypesEditionUnstable_builder) Build() *TestAllTypesEditionUnstable {
@@ -391,12 +447,12 @@
 	b, x := &b0, m0
 	_, _ = b, x
 	if b.OptionalInt32 != nil {
-		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 12)
+		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 15)
 		x.xxx_hidden_OptionalInt32 = *b.OptionalInt32
 	}
 	x.xxx_hidden_OptionalForeignMessage = b.OptionalForeignMessage
 	if b.OptionalForeignEnum != nil {
-		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 12)
+		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 15)
 		x.xxx_hidden_OptionalForeignEnum = *b.OptionalForeignEnum
 	}
 	x.xxx_hidden_RecursiveMessage = b.RecursiveMessage
@@ -408,12 +464,18 @@
 	x.xxx_hidden_MapStringString = b.MapStringString
 	x.xxx_hidden_MapStringForeignMessage = b.MapStringForeignMessage
 	x.xxx_hidden_MapStringForeignEnum = b.MapStringForeignEnum
+	if b.OptionalBytes != nil {
+		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 12, 15)
+		x.xxx_hidden_OptionalBytes = b.OptionalBytes
+	}
+	x.xxx_hidden_RepeatedBytes = b.RepeatedBytes
+	x.xxx_hidden_MapStringBytes = b.MapStringBytes
 	return m0
 }
 
 type ForeignMessageEditionUnstable struct {
 	state                  protoimpl.MessageState `protogen:"opaque.v1"`
-	xxx_hidden_C           int32                  `protobuf:"varint,1,opt,name=c"`
+	xxx_hidden_C           int32                  `protobuf:"fixed32,1,opt,name=c"`
 	XXX_raceDetectHookData protoimpl.RaceDetectHookData
 	XXX_presence           [1]uint32
 	unknownFields          protoimpl.UnknownFields
@@ -492,14 +554,14 @@
 		ExtensionType: (*int32)(nil),
 		Field:         120,
 		Name:          "protobuf_test_messages.edition_unstable.extension_int32",
-		Tag:           "varint,120,opt,name=extension_int32",
+		Tag:           "fixed32,120,opt,name=extension_int32",
 		Filename:      "conformance/test_protos/test_messages_edition_unstable.proto",
 	},
 }
 
 // Extension fields to TestAllTypesEditionUnstable.
 var (
-	// optional int32 extension_int32 = 120;
+	// optional sfixed32 extension_int32 = 120;
 	E_ExtensionInt32 = &file_conformance_test_protos_test_messages_edition_unstable_proto_extTypes[0]
 )
 
@@ -509,13 +571,13 @@
 	"\n" +
 	"<conformance/test_protos/test_messages_edition_unstable.proto\x12'protobuf_test_messages.edition_unstable\"\x1e\n" +
 	"\x0eComplexMessage\x12\f\n" +
-	"\x01d\x18\x01 \x01(\x05R\x01d\"\x99\x0f\n" +
+	"\x01d\x18\x01 \x01(\x0fR\x01d\"\xaf\x11\n" +
 	"\x1bTestAllTypesEditionUnstable\x12%\n" +
-	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12\x87\x01\n" +
+	"\x0eoptional_int32\x18\x01 \x01(\x0fR\roptionalInt32\x12\x87\x01\n" +
 	"\x18optional_foreign_message\x18\x02 \x01(\v2F.protobuf_test_messages.edition_unstable.ForeignMessageEditionUnstableB\x05\xaa\x01\x02(\x01R\x16optionalForeignMessage\x12w\n" +
 	"\x15optional_foreign_enum\x18\x03 \x01(\x0e2C.protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstableR\x13optionalForeignEnum\x12x\n" +
 	"\x11recursive_message\x18\x04 \x01(\v2D.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstableB\x05\xaa\x01\x02(\x01R\x10recursiveMessage\x12%\n" +
-	"\x0erepeated_int32\x18\x05 \x03(\x05R\rrepeatedInt32\x12\x87\x01\n" +
+	"\x0erepeated_int32\x18\x05 \x03(\x0fR\rrepeatedInt32\x12\x87\x01\n" +
 	"\x18repeated_foreign_message\x18\x06 \x03(\v2F.protobuf_test_messages.edition_unstable.ForeignMessageEditionUnstableB\x05\xaa\x01\x02(\x01R\x16repeatedForeignMessage\x12w\n" +
 	"\x15repeated_foreign_enum\x18\a \x03(\x0e2C.protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstableR\x13repeatedForeignEnum\x12\x7f\n" +
 	"\x0fmap_int32_int32\x18\b \x03(\v2W.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapInt32Int32EntryR\rmapInt32Int32\x12y\n" +
@@ -523,10 +585,13 @@
 	"\x11map_string_string\x18\n" +
 	" \x03(\v2Y.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringStringEntryR\x0fmapStringString\x12\x9e\x01\n" +
 	"\x1amap_string_foreign_message\x18\v \x03(\v2a.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignMessageEntryR\x17mapStringForeignMessage\x12\x95\x01\n" +
-	"\x17map_string_foreign_enum\x18\f \x03(\v2^.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignEnumEntryR\x14mapStringForeignEnum\x1a@\n" +
+	"\x17map_string_foreign_enum\x18\f \x03(\v2^.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignEnumEntryR\x14mapStringForeignEnum\x12%\n" +
+	"\x0eoptional_bytes\x18\r \x01(\fR\roptionalBytes\x12%\n" +
+	"\x0erepeated_bytes\x18\x0e \x03(\fR\rrepeatedBytes\x12\x82\x01\n" +
+	"\x10map_string_bytes\x18\x0f \x03(\v2X.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringBytesEntryR\x0emapStringBytes\x1a@\n" +
 	"\x12MapInt32Int32Entry\x12\x10\n" +
-	"\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" +
-	"\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a>\n" +
+	"\x03key\x18\x01 \x01(\x0fR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\x0fR\x05value:\x028\x01\x1a>\n" +
 	"\x10MapBoolBoolEntry\x12\x10\n" +
 	"\x03key\x18\x01 \x01(\bR\x03key\x12\x14\n" +
 	"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\x1aB\n" +
@@ -538,18 +603,21 @@
 	"\x05value\x18\x02 \x01(\v2F.protobuf_test_messages.edition_unstable.ForeignMessageEditionUnstableR\x05value:\x028\x01\x1a\x8c\x01\n" +
 	"\x19MapStringForeignEnumEntry\x12\x10\n" +
 	"\x03key\x18\x01 \x01(\tR\x03key\x12Y\n" +
-	"\x05value\x18\x02 \x01(\x0e2C.protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstableR\x05value:\x028\x01*\x05\bx\x10\xc9\x01\"-\n" +
+	"\x05value\x18\x02 \x01(\x0e2C.protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstableR\x05value:\x028\x01\x1aA\n" +
+	"\x13MapStringBytesEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01*\x05\bx\x10\xc9\x01\"-\n" +
 	"\x1dForeignMessageEditionUnstable\x12\f\n" +
-	"\x01c\x18\x01 \x01(\x05R\x01c*O\n" +
+	"\x01c\x18\x01 \x01(\x0fR\x01c*O\n" +
 	"\x1aForeignEnumEditionUnstable\x12\x0f\n" +
 	"\vFOREIGN_FOO\x10\x00\x12\x0f\n" +
 	"\vFOREIGN_BAR\x10\x01\x12\x0f\n" +
 	"\vFOREIGN_BAZ\x10\x02:m\n" +
-	"\x0fextension_int32\x12D.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable\x18x \x01(\x05R\x0eextensionInt32BK\n" +
+	"\x0fextension_int32\x12D.protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable\x18x \x01(\x0fR\x0eextensionInt32BK\n" +
 	"2com.google.protobuf_test_messages.edition_unstable\xa2\x02\x0fEditionUnstable\x92\x03\x02(\x02b\beditionsp\x8fN"
 
 var file_conformance_test_protos_test_messages_edition_unstable_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_conformance_test_protos_test_messages_edition_unstable_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_conformance_test_protos_test_messages_edition_unstable_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
 var file_conformance_test_protos_test_messages_edition_unstable_proto_goTypes = []any{
 	(ForeignEnumEditionUnstable)(0),       // 0: protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstable
 	(*ComplexMessage)(nil),                // 1: protobuf_test_messages.edition_unstable.ComplexMessage
@@ -560,6 +628,7 @@
 	nil,                                   // 6: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringStringEntry
 	nil,                                   // 7: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignMessageEntry
 	nil,                                   // 8: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignEnumEntry
+	nil,                                   // 9: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringBytesEntry
 }
 var file_conformance_test_protos_test_messages_edition_unstable_proto_depIdxs = []int32{
 	3,  // 0: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.optional_foreign_message:type_name -> protobuf_test_messages.edition_unstable.ForeignMessageEditionUnstable
@@ -572,14 +641,15 @@
 	6,  // 7: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.map_string_string:type_name -> protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringStringEntry
 	7,  // 8: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.map_string_foreign_message:type_name -> protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignMessageEntry
 	8,  // 9: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.map_string_foreign_enum:type_name -> protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignEnumEntry
-	3,  // 10: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.edition_unstable.ForeignMessageEditionUnstable
-	0,  // 11: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstable
-	2,  // 12: protobuf_test_messages.edition_unstable.extension_int32:extendee -> protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable
-	13, // [13:13] is the sub-list for method output_type
-	13, // [13:13] is the sub-list for method input_type
-	13, // [13:13] is the sub-list for extension type_name
-	12, // [12:13] is the sub-list for extension extendee
-	0,  // [0:12] is the sub-list for field type_name
+	9,  // 10: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.map_string_bytes:type_name -> protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringBytesEntry
+	3,  // 11: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.edition_unstable.ForeignMessageEditionUnstable
+	0,  // 12: protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.edition_unstable.ForeignEnumEditionUnstable
+	2,  // 13: protobuf_test_messages.edition_unstable.extension_int32:extendee -> protobuf_test_messages.edition_unstable.TestAllTypesEditionUnstable
+	14, // [14:14] is the sub-list for method output_type
+	14, // [14:14] is the sub-list for method input_type
+	14, // [14:14] is the sub-list for extension type_name
+	13, // [13:14] is the sub-list for extension extendee
+	0,  // [0:13] is the sub-list for field type_name
 }
 
 func init() { file_conformance_test_protos_test_messages_edition_unstable_proto_init() }
@@ -593,7 +663,7 @@
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: unsafe.Slice(unsafe.StringData(file_conformance_test_protos_test_messages_edition_unstable_proto_rawDesc), len(file_conformance_test_protos_test_messages_edition_unstable_proto_rawDesc)),
 			NumEnums:      1,
-			NumMessages:   8,
+			NumMessages:   9,
 			NumExtensions: 1,
 			NumServices:   0,
 		},
diff --git a/internal/testprotos/conformance/test_messages_proto2.pb.go b/internal/testprotos/conformance/test_messages_proto2.pb.go
index 29ad41c..9342d76 100644
--- a/internal/testprotos/conformance/test_messages_proto2.pb.go
+++ b/internal/testprotos/conformance/test_messages_proto2.pb.go
@@ -2621,8 +2621,9 @@
 }
 
 type TestAllTypesProto2_MessageSetCorrectExtension2 struct {
-	state         protoimpl.MessageState `protogen:"open.v1"`
-	I             *int32                 `protobuf:"varint,9,opt,name=i" json:"i,omitempty"`
+	state         protoimpl.MessageState                `protogen:"open.v1"`
+	I             *int32                                `protobuf:"varint,9,opt,name=i" json:"i,omitempty"`
+	SubMsg        *TestAllTypesProto2_MessageSetCorrect `protobuf:"bytes,10,opt,name=sub_msg,json=subMsg" json:"sub_msg,omitempty"`
 	unknownFields protoimpl.UnknownFields
 	sizeCache     protoimpl.SizeCache
 }
@@ -2664,6 +2665,13 @@
 	return 0
 }
 
+func (x *TestAllTypesProto2_MessageSetCorrectExtension2) GetSubMsg() *TestAllTypesProto2_MessageSetCorrect {
+	if x != nil {
+		return x.SubMsg
+	}
+	return nil
+}
+
 type TestAllTypesProto2_ExtensionWithOneof struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to OneofField:
@@ -3222,6 +3230,22 @@
 	},
 	{
 		ExtendedType:  (*TestAllTypesProto2)(nil),
+		ExtensionType: (*string)(nil),
+		Field:         133,
+		Name:          "protobuf_test_messages.proto2.extension_string",
+		Tag:           "bytes,133,opt,name=extension_string",
+		Filename:      "google/protobuf/test_messages_proto2.proto",
+	},
+	{
+		ExtendedType:  (*TestAllTypesProto2)(nil),
+		ExtensionType: ([]byte)(nil),
+		Field:         134,
+		Name:          "protobuf_test_messages.proto2.extension_bytes",
+		Tag:           "bytes,134,opt,name=extension_bytes",
+		Filename:      "google/protobuf/test_messages_proto2.proto",
+	},
+	{
+		ExtendedType:  (*TestAllTypesProto2)(nil),
 		ExtensionType: (*GroupField)(nil),
 		Field:         121,
 		Name:          "protobuf_test_messages.proto2.groupfield",
@@ -3274,33 +3298,37 @@
 var (
 	// optional int32 extension_int32 = 120;
 	E_ExtensionInt32 = &file_google_protobuf_test_messages_proto2_proto_extTypes[0]
+	// optional string extension_string = 133;
+	E_ExtensionString = &file_google_protobuf_test_messages_proto2_proto_extTypes[1]
+	// optional bytes extension_bytes = 134;
+	E_ExtensionBytes = &file_google_protobuf_test_messages_proto2_proto_extTypes[2]
 	// optional protobuf_test_messages.proto2.GroupField groupfield = 121;
-	E_Groupfield = &file_google_protobuf_test_messages_proto2_proto_extTypes[1]
+	E_Groupfield = &file_google_protobuf_test_messages_proto2_proto_extTypes[3]
 )
 
 // Extension fields to TestAllTypesProto2_MessageSetCorrect.
 var (
 	// optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769;
-	E_TestAllTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[2]
+	E_TestAllTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[4]
 	// optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312;
-	E_TestAllTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[3]
+	E_TestAllTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[5]
 	// optional protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof extension_with_oneof = 123456789;
-	E_TestAllTypesProto2_ExtensionWithOneof_ExtensionWithOneof = &file_google_protobuf_test_messages_proto2_proto_extTypes[4]
+	E_TestAllTypesProto2_ExtensionWithOneof_ExtensionWithOneof = &file_google_protobuf_test_messages_proto2_proto_extTypes[6]
 )
 
 // Extension fields to TestAllRequiredTypesProto2_MessageSetCorrect.
 var (
 	// optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769;
-	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[5]
+	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension1_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[7]
 	// optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312;
-	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[6]
+	E_TestAllRequiredTypesProto2_MessageSetCorrectExtension2_MessageSetExtension = &file_google_protobuf_test_messages_proto2_proto_extTypes[8]
 )
 
 var File_google_protobuf_test_messages_proto2_proto protoreflect.FileDescriptor
 
 const file_google_protobuf_test_messages_proto2_proto_rawDesc = "" +
 	"\n" +
-	"*google/protobuf/test_messages_proto2.proto\x12\x1dprotobuf_test_messages.proto2\"\xe7Y\n" +
+	"*google/protobuf/test_messages_proto2.proto\x12\x1dprotobuf_test_messages.proto2\"\xc5Z\n" +
 	"\x12TestAllTypesProto2\x12%\n" +
 	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12%\n" +
 	"\x0eoptional_int64\x18\x02 \x01(\x03R\roptionalInt64\x12'\n" +
@@ -3539,9 +3567,11 @@
 	"\x11MessageSetCorrect*\b\b\x04\x10\xff\xff\xff\xff\a:\x02\b\x01\x1a\xfa\x01\n" +
 	"\x1bMessageSetCorrectExtension1\x12\x10\n" +
 	"\x03str\x18\x19 \x01(\tR\x03str2\xc8\x01\n" +
-	"\x15message_set_extension\x12C.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\xf9\xbb^ \x01(\v2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1R\x13messageSetExtension\x1a\xf7\x01\n" +
+	"\x15message_set_extension\x12C.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\xf9\xbb^ \x01(\v2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1R\x13messageSetExtension\x1a\xd5\x02\n" +
 	"\x1bMessageSetCorrectExtension2\x12\f\n" +
-	"\x01i\x18\t \x01(\x05R\x01i2\xc9\x01\n" +
+	"\x01i\x18\t \x01(\x05R\x01i\x12\\\n" +
+	"\asub_msg\x18\n" +
+	" \x01(\v2C.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectR\x06subMsg2\xc9\x01\n" +
 	"\x15message_set_extension\x12C.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\x90\xb3\xfc\x01 \x01(\v2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2R\x13messageSetExtension\x1a\x84\x02\n" +
 	"\x12ExtensionWithOneof\x12\x0e\n" +
 	"\x01a\x18\x01 \x01(\x05H\x00R\x01a\x12\x0e\n" +
@@ -3668,7 +3698,9 @@
 	"\vFOREIGN_FOO\x10\x00\x12\x0f\n" +
 	"\vFOREIGN_BAR\x10\x01\x12\x0f\n" +
 	"\vFOREIGN_BAZ\x10\x02:Z\n" +
-	"\x0fextension_int32\x121.protobuf_test_messages.proto2.TestAllTypesProto2\x18x \x01(\x05R\x0eextensionInt32:|\n" +
+	"\x0fextension_int32\x121.protobuf_test_messages.proto2.TestAllTypesProto2\x18x \x01(\x05R\x0eextensionInt32:]\n" +
+	"\x10extension_string\x121.protobuf_test_messages.proto2.TestAllTypesProto2\x18\x85\x01 \x01(\tR\x0fextensionString:[\n" +
+	"\x0fextension_bytes\x121.protobuf_test_messages.proto2.TestAllTypesProto2\x18\x86\x01 \x01(\fR\x0eextensionBytes:|\n" +
 	"\n" +
 	"groupfield\x121.protobuf_test_messages.proto2.TestAllTypesProto2\x18y \x01(\n" +
 	"2).protobuf_test_messages.proto2.GroupFieldR\n" +
@@ -3802,26 +3834,29 @@
 	5,  // 54: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
 	1,  // 55: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
 	0,  // 56: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
-	12, // 57: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2
-	12, // 58: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage.optional_corecursive:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2
-	4,  // 59: protobuf_test_messages.proto2.extension_int32:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
-	4,  // 60: protobuf_test_messages.proto2.groupfield:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
-	38, // 61: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
-	38, // 62: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
-	38, // 63: protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
-	45, // 64: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
-	45, // 65: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
-	6,  // 66: protobuf_test_messages.proto2.groupfield:type_name -> protobuf_test_messages.proto2.GroupField
-	39, // 67: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1
-	40, // 68: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
-	41, // 69: protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof
-	46, // 70: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1
-	47, // 71: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2
-	72, // [72:72] is the sub-list for method output_type
-	72, // [72:72] is the sub-list for method input_type
-	66, // [66:72] is the sub-list for extension type_name
-	59, // [59:66] is the sub-list for extension extendee
-	0,  // [0:59] is the sub-list for field type_name
+	38, // 57: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.sub_msg:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
+	12, // 58: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2
+	12, // 59: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage.optional_corecursive:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2
+	4,  // 60: protobuf_test_messages.proto2.extension_int32:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
+	4,  // 61: protobuf_test_messages.proto2.extension_string:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
+	4,  // 62: protobuf_test_messages.proto2.extension_bytes:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
+	4,  // 63: protobuf_test_messages.proto2.groupfield:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
+	38, // 64: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
+	38, // 65: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
+	38, // 66: protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
+	45, // 67: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
+	45, // 68: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect
+	6,  // 69: protobuf_test_messages.proto2.groupfield:type_name -> protobuf_test_messages.proto2.GroupField
+	39, // 70: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1
+	40, // 71: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
+	41, // 72: protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.extension_with_oneof:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof
+	46, // 73: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1
+	47, // 74: protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2
+	75, // [75:75] is the sub-list for method output_type
+	75, // [75:75] is the sub-list for method input_type
+	69, // [69:75] is the sub-list for extension type_name
+	60, // [60:69] is the sub-list for extension extendee
+	0,  // [0:60] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_test_messages_proto2_proto_init() }
@@ -3858,7 +3893,7 @@
 			RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_test_messages_proto2_proto_rawDesc), len(file_google_protobuf_test_messages_proto2_proto_rawDesc)),
 			NumEnums:      4,
 			NumMessages:   49,
-			NumExtensions: 7,
+			NumExtensions: 9,
 			NumServices:   0,
 		},
 		GoTypes:           file_google_protobuf_test_messages_proto2_proto_goTypes,
diff --git a/internal/testprotos/conformance/test_messages_proto3.pb.go b/internal/testprotos/conformance/test_messages_proto3.pb.go
index c325dc2..1d2ad80 100644
--- a/internal/testprotos/conformance/test_messages_proto3.pb.go
+++ b/internal/testprotos/conformance/test_messages_proto3.pb.go
@@ -22,6 +22,7 @@
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 	anypb "google.golang.org/protobuf/types/known/anypb"
 	durationpb "google.golang.org/protobuf/types/known/durationpb"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
 	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
 	structpb "google.golang.org/protobuf/types/known/structpb"
 	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
@@ -381,6 +382,7 @@
 	OptionalAny           *anypb.Any                `protobuf:"bytes,305,opt,name=optional_any,json=optionalAny,proto3" json:"optional_any,omitempty"`
 	OptionalValue         *structpb.Value           `protobuf:"bytes,306,opt,name=optional_value,json=optionalValue,proto3" json:"optional_value,omitempty"`
 	OptionalNullValue     structpb.NullValue        `protobuf:"varint,307,opt,name=optional_null_value,json=optionalNullValue,proto3,enum=google.protobuf.NullValue" json:"optional_null_value,omitempty"`
+	OptionalEmpty         *emptypb.Empty            `protobuf:"bytes,308,opt,name=optional_empty,json=optionalEmpty,proto3" json:"optional_empty,omitempty"`
 	RepeatedDuration      []*durationpb.Duration    `protobuf:"bytes,311,rep,name=repeated_duration,json=repeatedDuration,proto3" json:"repeated_duration,omitempty"`
 	RepeatedTimestamp     []*timestamppb.Timestamp  `protobuf:"bytes,312,rep,name=repeated_timestamp,json=repeatedTimestamp,proto3" json:"repeated_timestamp,omitempty"`
 	RepeatedFieldmask     []*fieldmaskpb.FieldMask  `protobuf:"bytes,313,rep,name=repeated_fieldmask,json=repeatedFieldmask,proto3" json:"repeated_fieldmask,omitempty"`
@@ -388,6 +390,7 @@
 	RepeatedAny           []*anypb.Any              `protobuf:"bytes,315,rep,name=repeated_any,json=repeatedAny,proto3" json:"repeated_any,omitempty"`
 	RepeatedValue         []*structpb.Value         `protobuf:"bytes,316,rep,name=repeated_value,json=repeatedValue,proto3" json:"repeated_value,omitempty"`
 	RepeatedListValue     []*structpb.ListValue     `protobuf:"bytes,317,rep,name=repeated_list_value,json=repeatedListValue,proto3" json:"repeated_list_value,omitempty"`
+	RepeatedEmpty         []*emptypb.Empty          `protobuf:"bytes,318,rep,name=repeated_empty,json=repeatedEmpty,proto3" json:"repeated_empty,omitempty"`
 	// Test field-name-to-JSON-name convention.
 	// (protobuf says names can be any valid C/C++ identifier.)
 	Fieldname1    int32 `protobuf:"varint,401,opt,name=fieldname1,proto3" json:"fieldname1,omitempty"`
@@ -1351,6 +1354,13 @@
 	return structpb.NullValue(0)
 }
 
+func (x *TestAllTypesProto3) GetOptionalEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.OptionalEmpty
+	}
+	return nil
+}
+
 func (x *TestAllTypesProto3) GetRepeatedDuration() []*durationpb.Duration {
 	if x != nil {
 		return x.RepeatedDuration
@@ -1400,6 +1410,13 @@
 	return nil
 }
 
+func (x *TestAllTypesProto3) GetRepeatedEmpty() []*emptypb.Empty {
+	if x != nil {
+		return x.RepeatedEmpty
+	}
+	return nil
+}
+
 func (x *TestAllTypesProto3) GetFieldname1() int32 {
 	if x != nil {
 		return x.Fieldname1
@@ -1762,7 +1779,7 @@
 
 const file_google_protobuf_test_messages_proto3_proto_rawDesc = "" +
 	"\n" +
-	"*google/protobuf/test_messages_proto3.proto\x12\x1dprotobuf_test_messages.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb3[\n" +
+	"*google/protobuf/test_messages_proto3.proto\x12\x1dprotobuf_test_messages.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb3\\\n" +
 	"\x12TestAllTypesProto3\x12%\n" +
 	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12%\n" +
 	"\x0eoptional_int64\x18\x02 \x01(\x03R\roptionalInt64\x12'\n" +
@@ -1895,14 +1912,16 @@
 	"\x0foptional_struct\x18\xb0\x02 \x01(\v2\x17.google.protobuf.StructR\x0eoptionalStruct\x128\n" +
 	"\foptional_any\x18\xb1\x02 \x01(\v2\x14.google.protobuf.AnyR\voptionalAny\x12>\n" +
 	"\x0eoptional_value\x18\xb2\x02 \x01(\v2\x16.google.protobuf.ValueR\roptionalValue\x12K\n" +
-	"\x13optional_null_value\x18\xb3\x02 \x01(\x0e2\x1a.google.protobuf.NullValueR\x11optionalNullValue\x12G\n" +
+	"\x13optional_null_value\x18\xb3\x02 \x01(\x0e2\x1a.google.protobuf.NullValueR\x11optionalNullValue\x12>\n" +
+	"\x0eoptional_empty\x18\xb4\x02 \x01(\v2\x16.google.protobuf.EmptyR\roptionalEmpty\x12G\n" +
 	"\x11repeated_duration\x18\xb7\x02 \x03(\v2\x19.google.protobuf.DurationR\x10repeatedDuration\x12J\n" +
 	"\x12repeated_timestamp\x18\xb8\x02 \x03(\v2\x1a.google.protobuf.TimestampR\x11repeatedTimestamp\x12J\n" +
 	"\x12repeated_fieldmask\x18\xb9\x02 \x03(\v2\x1a.google.protobuf.FieldMaskR\x11repeatedFieldmask\x12A\n" +
 	"\x0frepeated_struct\x18\xc4\x02 \x03(\v2\x17.google.protobuf.StructR\x0erepeatedStruct\x128\n" +
 	"\frepeated_any\x18\xbb\x02 \x03(\v2\x14.google.protobuf.AnyR\vrepeatedAny\x12>\n" +
 	"\x0erepeated_value\x18\xbc\x02 \x03(\v2\x16.google.protobuf.ValueR\rrepeatedValue\x12K\n" +
-	"\x13repeated_list_value\x18\xbd\x02 \x03(\v2\x1a.google.protobuf.ListValueR\x11repeatedListValue\x12\x1f\n" +
+	"\x13repeated_list_value\x18\xbd\x02 \x03(\v2\x1a.google.protobuf.ListValueR\x11repeatedListValue\x12>\n" +
+	"\x0erepeated_empty\x18\xbe\x02 \x03(\v2\x16.google.protobuf.EmptyR\rrepeatedEmpty\x12\x1f\n" +
 	"\n" +
 	"fieldname1\x18\x91\x03 \x01(\x05R\n" +
 	"fieldname1\x12 \n" +
@@ -2078,7 +2097,8 @@
 	(*structpb.Struct)(nil),                  // 41: google.protobuf.Struct
 	(*anypb.Any)(nil),                        // 42: google.protobuf.Any
 	(*structpb.Value)(nil),                   // 43: google.protobuf.Value
-	(*structpb.ListValue)(nil),               // 44: google.protobuf.ListValue
+	(*emptypb.Empty)(nil),                    // 44: google.protobuf.Empty
+	(*structpb.ListValue)(nil),               // 45: google.protobuf.ListValue
 }
 var file_google_protobuf_test_messages_proto3_proto_depIdxs = []int32{
 	8,  // 0: protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
@@ -2140,23 +2160,25 @@
 	42, // 56: protobuf_test_messages.proto3.TestAllTypesProto3.optional_any:type_name -> google.protobuf.Any
 	43, // 57: protobuf_test_messages.proto3.TestAllTypesProto3.optional_value:type_name -> google.protobuf.Value
 	28, // 58: protobuf_test_messages.proto3.TestAllTypesProto3.optional_null_value:type_name -> google.protobuf.NullValue
-	38, // 59: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration
-	39, // 60: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp
-	40, // 61: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask
-	41, // 62: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct
-	42, // 63: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any
-	43, // 64: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value
-	44, // 65: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue
-	4,  // 66: protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3
-	8,  // 67: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
-	5,  // 68: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto3.ForeignMessage
-	1,  // 69: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
-	0,  // 70: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto3.ForeignEnum
-	71, // [71:71] is the sub-list for method output_type
-	71, // [71:71] is the sub-list for method input_type
-	71, // [71:71] is the sub-list for extension type_name
-	71, // [71:71] is the sub-list for extension extendee
-	0,  // [0:71] is the sub-list for field type_name
+	44, // 59: protobuf_test_messages.proto3.TestAllTypesProto3.optional_empty:type_name -> google.protobuf.Empty
+	38, // 60: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration
+	39, // 61: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp
+	40, // 62: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask
+	41, // 63: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct
+	42, // 64: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any
+	43, // 65: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value
+	45, // 66: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue
+	44, // 67: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_empty:type_name -> google.protobuf.Empty
+	4,  // 68: protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3
+	8,  // 69: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
+	5,  // 70: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto3.ForeignMessage
+	1,  // 71: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
+	0,  // 72: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto3.ForeignEnum
+	73, // [73:73] is the sub-list for method output_type
+	73, // [73:73] is the sub-list for method input_type
+	73, // [73:73] is the sub-list for extension type_name
+	73, // [73:73] is the sub-list for extension extendee
+	0,  // [0:73] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_test_messages_proto3_proto_init() }
diff --git a/reflect/protoreflect/source_gen.go b/reflect/protoreflect/source_gen.go
index 730331e..86f0d09 100644
--- a/reflect/protoreflect/source_gen.go
+++ b/reflect/protoreflect/source_gen.go
@@ -546,6 +546,8 @@
 		b = p.appendSingularField(b, "deprecation_warning", nil)
 	case 4:
 		b = p.appendSingularField(b, "edition_removed", nil)
+	case 5:
+		b = p.appendSingularField(b, "removal_error", nil)
 	}
 	return b
 }
diff --git a/types/descriptorpb/descriptor.pb.go b/types/descriptorpb/descriptor.pb.go
index 0b23faa..a51cb1e 100644
--- a/types/descriptorpb/descriptor.pb.go
+++ b/types/descriptorpb/descriptor.pb.go
@@ -1,32 +1,9 @@
 // Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc.  All rights reserved.
-// https://developers.google.com/protocol-buffers/
+// Copyright 2008 Google LLC.  All rights reserved.
 //
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 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
 
 // Author: kenton@google.com (Kenton Varda)
 //  Based on original Protocol Buffers design by
@@ -69,6 +46,7 @@
 	// comparison.
 	Edition_EDITION_2023 Edition = 1000
 	Edition_EDITION_2024 Edition = 1001
+	Edition_EDITION_2026 Edition = 1002
 	// A placeholder edition for developing and testing unscheduled features.
 	Edition_EDITION_UNSTABLE Edition = 9999
 	// Placeholder editions for testing feature resolution.  These should not be
@@ -93,6 +71,7 @@
 		999:        "EDITION_PROTO3",
 		1000:       "EDITION_2023",
 		1001:       "EDITION_2024",
+		1002:       "EDITION_2026",
 		9999:       "EDITION_UNSTABLE",
 		1:          "EDITION_1_TEST_ONLY",
 		2:          "EDITION_2_TEST_ONLY",
@@ -108,6 +87,7 @@
 		"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,
@@ -1213,6 +1193,7 @@
 	FeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN FeatureSet_EnforceNamingStyle = 0
 	FeatureSet_STYLE2024                    FeatureSet_EnforceNamingStyle = 1
 	FeatureSet_STYLE_LEGACY                 FeatureSet_EnforceNamingStyle = 2
+	FeatureSet_STYLE2026                    FeatureSet_EnforceNamingStyle = 3
 )
 
 // Enum value maps for FeatureSet_EnforceNamingStyle.
@@ -1221,11 +1202,13 @@
 		0: "ENFORCE_NAMING_STYLE_UNKNOWN",
 		1: "STYLE2024",
 		2: "STYLE_LEGACY",
+		3: "STYLE2026",
 	}
 	FeatureSet_EnforceNamingStyle_value = map[string]int32{
 		"ENFORCE_NAMING_STYLE_UNKNOWN": 0,
 		"STYLE2024":                    1,
 		"STYLE_LEGACY":                 2,
+		"STYLE2026":                    3,
 	}
 )
 
@@ -4204,8 +4187,11 @@
 	// this one, the last default assigned will be used, and proto files will
 	// not be able to override it.
 	EditionRemoved *Edition `protobuf:"varint,4,opt,name=edition_removed,json=editionRemoved,enum=google.protobuf.Edition" json:"edition_removed,omitempty"`
-	unknownFields  protoimpl.UnknownFields
-	sizeCache      protoimpl.SizeCache
+	// The removal error text if this feature is used after the edition it was
+	// removed in.
+	RemovalError  *string `protobuf:"bytes,5,opt,name=removal_error,json=removalError" json:"removal_error,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FieldOptions_FeatureSupport) Reset() {
@@ -4266,6 +4252,13 @@
 	return Edition_EDITION_UNKNOWN
 }
 
+func (x *FieldOptions_FeatureSupport) GetRemovalError() string {
+	if x != nil && x.RemovalError != nil {
+		return *x.RemovalError
+	}
+	return ""
+}
+
 // The name of the uninterpreted option.  Each string represents a segment in
 // a dot-separated name.  is_extension is true iff a segment represents an
 // extension (denoted with parentheses in options specs in .proto files).
@@ -4719,7 +4712,7 @@
 	"\aoptions\x18\x03 \x01(\v2&.google.protobuf.ExtensionRangeOptionsR\aoptions\x1a7\n" +
 	"\rReservedRange\x12\x14\n" +
 	"\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n" +
-	"\x03end\x18\x02 \x01(\x05R\x03end\"\xcc\x04\n" +
+	"\x03end\x18\x02 \x01(\x05R\x03end\"\xd4\x04\n" +
 	"\x15ExtensionRangeOptions\x12X\n" +
 	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\x12Y\n" +
 	"\vdeclaration\x18\x02 \x03(\v22.google.protobuf.ExtensionRangeOptions.DeclarationB\x03\x88\x01\x02R\vdeclaration\x127\n" +
@@ -4735,7 +4728,7 @@
 	"\x11VerificationState\x12\x0f\n" +
 	"\vDECLARATION\x10\x00\x12\x0e\n" +
 	"\n" +
-	"UNVERIFIED\x10\x01*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xc1\x06\n" +
+	"UNVERIFIED\x10\x01*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xc1\x06\n" +
 	"\x14FieldDescriptorProto\x12\x12\n" +
 	"\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" +
 	"\x06number\x18\x03 \x01(\x05R\x06number\x12A\n" +
@@ -4810,12 +4803,13 @@
 	"outputType\x128\n" +
 	"\aoptions\x18\x04 \x01(\v2\x1e.google.protobuf.MethodOptionsR\aoptions\x120\n" +
 	"\x10client_streaming\x18\x05 \x01(\b:\x05falseR\x0fclientStreaming\x120\n" +
-	"\x10server_streaming\x18\x06 \x01(\b:\x05falseR\x0fserverStreaming\"\xad\t\n" +
+	"\x10server_streaming\x18\x06 \x01(\b:\x05falseR\x0fserverStreaming\"\xfa\n" +
+	"\n" +
 	"\vFileOptions\x12!\n" +
 	"\fjava_package\x18\x01 \x01(\tR\vjavaPackage\x120\n" +
-	"\x14java_outer_classname\x18\b \x01(\tR\x12javaOuterClassname\x125\n" +
+	"\x14java_outer_classname\x18\b \x01(\tR\x12javaOuterClassname\x12\xf9\x01\n" +
 	"\x13java_multiple_files\x18\n" +
-	" \x01(\b:\x05falseR\x11javaMultipleFiles\x12D\n" +
+	" \x01(\b:\x05falseB\xc1\x01\xb2\x01\xbd\x01\b\xe6\a \xe9\a*\xb4\x01This behavior is enabled by default in editions 2024 and above. To disable it, you can set `features.(pb.java).nest_in_file_class = YES` on individual messages, enums, or services.R\x11javaMultipleFiles\x12D\n" +
 	"\x1djava_generate_equals_and_hash\x18\x14 \x01(\bB\x02\x18\x01R\x19javaGenerateEqualsAndHash\x12:\n" +
 	"\x16java_string_check_utf8\x18\x1b \x01(\b:\x05falseR\x13javaStringCheckUtf8\x12S\n" +
 	"\foptimize_for\x18\t \x01(\x0e2).google.protobuf.FileOptions.OptimizeMode:\x05SPEEDR\voptimizeFor\x12\x1d\n" +
@@ -4840,7 +4834,7 @@
 	"\fOptimizeMode\x12\t\n" +
 	"\x05SPEED\x10\x01\x12\r\n" +
 	"\tCODE_SIZE\x10\x02\x12\x10\n" +
-	"\fLITE_RUNTIME\x10\x03*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b*\x10+J\x04\b&\x10'R\x14php_generic_services\"\xf4\x03\n" +
+	"\fLITE_RUNTIME\x10\x03*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b*\x10+J\x04\b&\x10'R\x14php_generic_services\"\xfc\x03\n" +
 	"\x0eMessageOptions\x12<\n" +
 	"\x17message_set_wire_format\x18\x01 \x01(\b:\x05falseR\x14messageSetWireFormat\x12L\n" +
 	"\x1fno_standard_descriptor_accessor\x18\x02 \x01(\b:\x05falseR\x1cnoStandardDescriptorAccessor\x12%\n" +
@@ -4850,8 +4844,8 @@
 	"\tmap_entry\x18\a \x01(\bR\bmapEntry\x12V\n" +
 	"&deprecated_legacy_json_field_conflicts\x18\v \x01(\bB\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n" +
 	"\bfeatures\x18\f \x01(\v2\x1b.google.protobuf.FeatureSetR\bfeatures\x12X\n" +
-	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x04\x10\x05J\x04\b\x05\x10\x06J\x04\b\x06\x10\aJ\x04\b\b\x10\tJ\x04\b\t\x10\n" +
-	"\"\xa1\r\n" +
+	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x04\x10\x05J\x04\b\x05\x10\x06J\x04\b\x06\x10\aJ\x04\b\b\x10\tJ\x04\b\t\x10\n" +
+	"\"\xce\r\n" +
 	"\fFieldOptions\x12A\n" +
 	"\x05ctype\x18\x01 \x01(\x0e2#.google.protobuf.FieldOptions.CType:\x06STRINGR\x05ctype\x12\x16\n" +
 	"\x06packed\x18\x02 \x01(\bR\x06packed\x12G\n" +
@@ -4872,12 +4866,13 @@
 	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\x1aZ\n" +
 	"\x0eEditionDefault\x122\n" +
 	"\aedition\x18\x03 \x01(\x0e2\x18.google.protobuf.EditionR\aedition\x12\x14\n" +
-	"\x05value\x18\x02 \x01(\tR\x05value\x1a\x96\x02\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value\x1a\xbb\x02\n" +
 	"\x0eFeatureSupport\x12G\n" +
 	"\x12edition_introduced\x18\x01 \x01(\x0e2\x18.google.protobuf.EditionR\x11editionIntroduced\x12G\n" +
 	"\x12edition_deprecated\x18\x02 \x01(\x0e2\x18.google.protobuf.EditionR\x11editionDeprecated\x12/\n" +
 	"\x13deprecation_warning\x18\x03 \x01(\tR\x12deprecationWarning\x12A\n" +
-	"\x0fedition_removed\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eeditionRemoved\"/\n" +
+	"\x0fedition_removed\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eeditionRemoved\x12#\n" +
+	"\rremoval_error\x18\x05 \x01(\tR\fremovalError\"/\n" +
 	"\x05CType\x12\n" +
 	"\n" +
 	"\x06STRING\x10\x00\x12\b\n" +
@@ -4901,10 +4896,10 @@
 	"\x10TARGET_TYPE_ENUM\x10\x06\x12\x1a\n" +
 	"\x16TARGET_TYPE_ENUM_ENTRY\x10\a\x12\x17\n" +
 	"\x13TARGET_TYPE_SERVICE\x10\b\x12\x16\n" +
-	"\x12TARGET_TYPE_METHOD\x10\t*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x04\x10\x05J\x04\b\x12\x10\x13\"\xac\x01\n" +
+	"\x12TARGET_TYPE_METHOD\x10\t*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x04\x10\x05J\x04\b\x12\x10\x13\"\xb4\x01\n" +
 	"\fOneofOptions\x127\n" +
 	"\bfeatures\x18\x01 \x01(\v2\x1b.google.protobuf.FeatureSetR\bfeatures\x12X\n" +
-	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xd1\x02\n" +
+	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xd9\x02\n" +
 	"\vEnumOptions\x12\x1f\n" +
 	"\vallow_alias\x18\x02 \x01(\bR\n" +
 	"allowAlias\x12%\n" +
@@ -4913,7 +4908,7 @@
 	"deprecated\x12V\n" +
 	"&deprecated_legacy_json_field_conflicts\x18\x06 \x01(\bB\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n" +
 	"\bfeatures\x18\a \x01(\v2\x1b.google.protobuf.FeatureSetR\bfeatures\x12X\n" +
-	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x05\x10\x06\"\xd8\x02\n" +
+	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x05\x10\x06\"\xe0\x02\n" +
 	"\x10EnumValueOptions\x12%\n" +
 	"\n" +
 	"deprecated\x18\x01 \x01(\b:\x05falseR\n" +
@@ -4921,13 +4916,13 @@
 	"\bfeatures\x18\x02 \x01(\v2\x1b.google.protobuf.FeatureSetR\bfeatures\x12(\n" +
 	"\fdebug_redact\x18\x03 \x01(\b:\x05falseR\vdebugRedact\x12U\n" +
 	"\x0ffeature_support\x18\x04 \x01(\v2,.google.protobuf.FieldOptions.FeatureSupportR\x0efeatureSupport\x12X\n" +
-	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xd5\x01\n" +
+	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xdd\x01\n" +
 	"\x0eServiceOptions\x127\n" +
 	"\bfeatures\x18\" \x01(\v2\x1b.google.protobuf.FeatureSetR\bfeatures\x12%\n" +
 	"\n" +
 	"deprecated\x18! \x01(\b:\x05falseR\n" +
 	"deprecated\x12X\n" +
-	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\x99\x03\n" +
+	"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\xa1\x03\n" +
 	"\rMethodOptions\x12%\n" +
 	"\n" +
 	"deprecated\x18! \x01(\b:\x05falseR\n" +
@@ -4939,7 +4934,7 @@
 	"\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n" +
 	"\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n" +
 	"\n" +
-	"IDEMPOTENT\x10\x02*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\x9a\x03\n" +
+	"IDEMPOTENT\x10\x02*\x06\b\xde\a\x10\xe7\a*\t\b\xe8\a\x10\x80\x80\x80\x80\x02\"\x9a\x03\n" +
 	"\x13UninterpretedOption\x12A\n" +
 	"\x04name\x18\x02 \x03(\v2-.google.protobuf.UninterpretedOption.NamePartR\x04name\x12)\n" +
 	"\x10identifier_value\x18\x03 \x01(\tR\x0fidentifierValue\x12,\n" +
@@ -4950,7 +4945,7 @@
 	"\x0faggregate_value\x18\b \x01(\tR\x0eaggregateValue\x1aJ\n" +
 	"\bNamePart\x12\x1b\n" +
 	"\tname_part\x18\x01 \x02(\tR\bnamePart\x12!\n" +
-	"\fis_extension\x18\x02 \x02(\bR\visExtension\"\x8e\x0f\n" +
+	"\fis_extension\x18\x02 \x02(\bR\visExtension\"\xae\x0f\n" +
 	"\n" +
 	"FeatureSet\x12\x91\x01\n" +
 	"\x0efield_presence\x18\x01 \x01(\x0e2).google.protobuf.FeatureSet.FieldPresenceB?\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\r\x12\bEXPLICIT\x18\x84\a\xa2\x01\r\x12\bIMPLICIT\x18\xe7\a\xa2\x01\r\x12\bEXPLICIT\x18\xe8\a\xb2\x01\x03\b\xe8\aR\rfieldPresence\x12l\n" +
@@ -4960,8 +4955,8 @@
 	"\x10message_encoding\x18\x05 \x01(\x0e2+.google.protobuf.FeatureSet.MessageEncodingB&\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\x14\x12\x0fLENGTH_PREFIXED\x18\x84\a\xb2\x01\x03\b\xe8\aR\x0fmessageEncoding\x12\x82\x01\n" +
 	"\vjson_format\x18\x06 \x01(\x0e2&.google.protobuf.FeatureSet.JsonFormatB9\x88\x01\x01\x98\x01\x03\x98\x01\x06\x98\x01\x01\xa2\x01\x17\x12\x12LEGACY_BEST_EFFORT\x18\x84\a\xa2\x01\n" +
 	"\x12\x05ALLOW\x18\xe7\a\xb2\x01\x03\b\xe8\aR\n" +
-	"jsonFormat\x12\xab\x01\n" +
-	"\x14enforce_naming_style\x18\a \x01(\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleBI\x88\x01\x02\x98\x01\x01\x98\x01\x02\x98\x01\x03\x98\x01\x04\x98\x01\x05\x98\x01\x06\x98\x01\a\x98\x01\b\x98\x01\t\xa2\x01\x11\x12\fSTYLE_LEGACY\x18\x84\a\xa2\x01\x0e\x12\tSTYLE2024\x18\xe9\a\xb2\x01\x03\b\xe9\aR\x12enforceNamingStyle\x12\xb9\x01\n" +
+	"jsonFormat\x12\xbc\x01\n" +
+	"\x14enforce_naming_style\x18\a \x01(\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleBZ\x88\x01\x02\x98\x01\x01\x98\x01\x02\x98\x01\x03\x98\x01\x04\x98\x01\x05\x98\x01\x06\x98\x01\a\x98\x01\b\x98\x01\t\xa2\x01\x11\x12\fSTYLE_LEGACY\x18\x84\a\xa2\x01\x0e\x12\tSTYLE2024\x18\xe9\a\xa2\x01\x0e\x12\tSTYLE2026\x18\x8fN\xb2\x01\x03\b\xe9\aR\x12enforceNamingStyle\x12\xb9\x01\n" +
 	"\x19default_symbol_visibility\x18\b \x01(\x0e2E.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibilityB6\x88\x01\x02\x98\x01\x01\xa2\x01\x0f\x12\n" +
 	"EXPORT_ALL\x18\x84\a\xa2\x01\x15\x12\x10EXPORT_TOP_LEVEL\x18\xe9\a\xb2\x01\x03\b\xe9\aR\x17defaultSymbolVisibility\x1a\xa1\x01\n" +
 	"\x11VisibilityFeature\"\x81\x01\n" +
@@ -5001,11 +4996,12 @@
 	"JsonFormat\x12\x17\n" +
 	"\x13JSON_FORMAT_UNKNOWN\x10\x00\x12\t\n" +
 	"\x05ALLOW\x10\x01\x12\x16\n" +
-	"\x12LEGACY_BEST_EFFORT\x10\x02\"W\n" +
+	"\x12LEGACY_BEST_EFFORT\x10\x02\"f\n" +
 	"\x12EnforceNamingStyle\x12 \n" +
 	"\x1cENFORCE_NAMING_STYLE_UNKNOWN\x10\x00\x12\r\n" +
 	"\tSTYLE2024\x10\x01\x12\x10\n" +
-	"\fSTYLE_LEGACY\x10\x02*\x06\b\xe8\a\x10\x8bN*\x06\b\x8bN\x10\x90N*\x06\b\x90N\x10\x91NJ\x06\b\xe7\a\x10\xe8\a\"\xef\x03\n" +
+	"\fSTYLE_LEGACY\x10\x02\x12\r\n" +
+	"\tSTYLE2026\x10\x03*\x06\b\xe8\a\x10\x8bN*\x06\b\x8bN\x10\x90N*\x06\b\x90N\x10\x91NJ\x06\b\xe7\a\x10\xe8\a\"\xef\x03\n" +
 	"\x12FeatureSetDefaults\x12X\n" +
 	"\bdefaults\x18\x01 \x03(\v2<.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefaultR\bdefaults\x12A\n" +
 	"\x0fminimum_edition\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eminimumEdition\x12A\n" +
@@ -5037,14 +5033,15 @@
 	"\bSemantic\x12\b\n" +
 	"\x04NONE\x10\x00\x12\a\n" +
 	"\x03SET\x10\x01\x12\t\n" +
-	"\x05ALIAS\x10\x02*\xbe\x02\n" +
+	"\x05ALIAS\x10\x02*\xd1\x02\n" +
 	"\aEdition\x12\x13\n" +
 	"\x0fEDITION_UNKNOWN\x10\x00\x12\x13\n" +
 	"\x0eEDITION_LEGACY\x10\x84\a\x12\x13\n" +
 	"\x0eEDITION_PROTO2\x10\xe6\a\x12\x13\n" +
 	"\x0eEDITION_PROTO3\x10\xe7\a\x12\x11\n" +
 	"\fEDITION_2023\x10\xe8\a\x12\x11\n" +
-	"\fEDITION_2024\x10\xe9\a\x12\x15\n" +
+	"\fEDITION_2024\x10\xe9\a\x12\x11\n" +
+	"\fEDITION_2026\x10\xea\a\x12\x15\n" +
 	"\x10EDITION_UNSTABLE\x10\x8fN\x12\x17\n" +
 	"\x13EDITION_1_TEST_ONLY\x10\x01\x12\x17\n" +
 	"\x13EDITION_2_TEST_ONLY\x10\x02\x12\x1d\n" +
diff --git a/types/known/anypb/any.pb.go b/types/known/anypb/any.pb.go
index 1ff0d14..510894f 100644
--- a/types/known/anypb/any.pb.go
+++ b/types/known/anypb/any.pb.go
@@ -128,120 +128,66 @@
 // `Any` contains an arbitrary serialized protocol buffer message along with a
 // URL that describes the type of the serialized message.
 //
-// Protobuf library provides support to pack/unpack Any values in the form
-// of utility functions or additional generated methods of the Any type.
+// In its binary encoding, an `Any` is an ordinary message; but in other wire
+// forms like JSON, it has a special encoding. The format of the type URL is
+// described on the `type_url` field.
 //
-// Example 1: Pack and unpack a message in C++.
+// Protobuf APIs provide utilities to interact with `Any` values:
 //
-//	Foo foo = ...;
-//	Any any;
-//	any.PackFrom(foo);
-//	...
-//	if (any.UnpackTo(&foo)) {
-//	  ...
-//	}
+//   - A 'pack' operation accepts a message and constructs a generic `Any` wrapper
+//     around it.
+//   - An 'unpack' operation reads the content of an `Any` message, either into an
+//     existing message or a new one. Unpack operations must check the type of the
+//     value they unpack against the declared `type_url`.
+//   - An 'is' operation decides whether an `Any` contains a message of the given
+//     type, i.e. whether it can 'unpack' that type.
 //
-// Example 2: Pack and unpack a message in Java.
+// The JSON format representation of an `Any` follows one of these cases:
 //
-//	   Foo foo = ...;
-//	   Any any = Any.pack(foo);
-//	   ...
-//	   if (any.is(Foo.class)) {
-//	     foo = any.unpack(Foo.class);
-//	   }
-//	   // or ...
-//	   if (any.isSameTypeAs(Foo.getDefaultInstance())) {
-//	     foo = any.unpack(Foo.getDefaultInstance());
-//	   }
+//   - For types without special-cased JSON encodings, the JSON format
+//     representation of the `Any` is the same as that of the message, with an
+//     additional `@type` field which contains the type URL.
+//   - For types with special-cased JSON encodings (typically called 'well-known'
+//     types, listed in https://protobuf.dev/programming-guides/json/#any), the
+//     JSON format representation has a key `@type` which contains the type URL
+//     and a key `value` which contains the JSON-serialized value.
 //
-//	Example 3: Pack and unpack a message in Python.
-//
-//	   foo = Foo(...)
-//	   any = Any()
-//	   any.Pack(foo)
-//	   ...
-//	   if any.Is(Foo.DESCRIPTOR):
-//	     any.Unpack(foo)
-//	     ...
-//
-//	Example 4: Pack and unpack a message in Go
-//
-//	    foo := &pb.Foo{...}
-//	    any, err := anypb.New(foo)
-//	    if err != nil {
-//	      ...
-//	    }
-//	    ...
-//	    foo := &pb.Foo{}
-//	    if err := any.UnmarshalTo(foo); err != nil {
-//	      ...
-//	    }
-//
-// The pack methods provided by protobuf library will by default use
-// 'type.googleapis.com/full.type.name' as the type URL and the unpack
-// methods only use the fully qualified type name after the last '/'
-// in the type URL, for example "foo.bar.com/x/y.z" will yield type
-// name "y.z".
-//
-// JSON
-// ====
-// The JSON representation of an `Any` value uses the regular
-// representation of the deserialized, embedded message, with an
-// additional field `@type` which contains the type URL. Example:
-//
-//	package google.profile;
-//	message Person {
-//	  string first_name = 1;
-//	  string last_name = 2;
-//	}
-//
-//	{
-//	  "@type": "type.googleapis.com/google.profile.Person",
-//	  "firstName": <string>,
-//	  "lastName": <string>
-//	}
-//
-// If the embedded message type is well-known and has a custom JSON
-// representation, that representation will be embedded adding a field
-// `value` which holds the custom JSON in addition to the `@type`
-// field. Example (for message [google.protobuf.Duration][]):
-//
-//	{
-//	  "@type": "type.googleapis.com/google.protobuf.Duration",
-//	  "value": "1.212s"
-//	}
+// The text format representation of an `Any` is like a message with one field
+// whose name is the type URL in brackets. For example, an `Any` containing a
+// `foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`.
 type Any struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
-	// A URL/resource name that uniquely identifies the type of the serialized
-	// protocol buffer message. This string must contain at least
-	// one "/" character. The last segment of the URL's path must represent
-	// the fully qualified name of the type (as in
-	// `path/google.protobuf.Duration`). The name should be in a canonical form
-	// (e.g., leading "." is not accepted).
+	// Identifies the type of the serialized Protobuf message with a URI reference
+	// consisting of a prefix ending in a slash and the fully-qualified type name.
 	//
-	// In practice, teams usually precompile into the binary all types that they
-	// expect it to use in the context of Any. However, for URLs which use the
-	// scheme `http`, `https`, or no scheme, one can optionally set up a type
-	// server that maps type URLs to message definitions as follows:
+	// Example: type.googleapis.com/google.protobuf.StringValue
 	//
-	//   - If no scheme is provided, `https` is assumed.
-	//   - An HTTP GET on the URL must yield a [google.protobuf.Type][]
-	//     value in binary format, or produce an error.
-	//   - Applications are allowed to cache lookup results based on the
-	//     URL, or have them precompiled into a binary to avoid any
-	//     lookup. Therefore, binary compatibility needs to be preserved
-	//     on changes to types. (Use versioned type names to manage
-	//     breaking changes.)
+	// This string must contain at least one `/` character, and the content after
+	// the last `/` must be the fully-qualified name of the type in canonical
+	// form, without a leading dot. Do not write a scheme on these URI references
+	// so that clients do not attempt to contact them.
 	//
-	// Note: this functionality is not currently available in the official
-	// protobuf release, and it is not used for type URLs beginning with
-	// type.googleapis.com. As of May 2023, there are no widely used type server
-	// implementations and no plans to implement one.
+	// The prefix is arbitrary and Protobuf implementations are expected to
+	// simply strip off everything up to and including the last `/` to identify
+	// the type. `type.googleapis.com/` is a common default prefix that some
+	// legacy implementations require. This prefix does not indicate the origin of
+	// the type, and URIs containing it are not expected to respond to any
+	// requests.
 	//
-	// Schemes other than `http`, `https` (or the empty scheme) might be
-	// used with implementation specific semantics.
+	// All type URL strings must be legal URI references with the additional
+	// restriction (for the text format) that the content of the reference
+	// must consist only of alphanumeric characters, percent-encoded escapes, and
+	// characters in the following set (not including the outer backticks):
+	// `/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations
+	// should not unescape them to prevent confusion with existing parsers. For
+	// example, `type.googleapis.com%2FFoo` should be rejected.
+	//
+	// In the original design of `Any`, the possibility of launching a type
+	// resolution service at these type URLs was considered but Protobuf never
+	// implemented one and considers contacting these URLs to be problematic and
+	// a potential security issue. Do not attempt to contact type URLs.
 	TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
-	// Must be a valid serialized protocol buffer of the above specified type.
+	// Holds a Protobuf serialization of the type described by type_url.
 	Value         []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	unknownFields protoimpl.UnknownFields
 	sizeCache     protoimpl.SizeCache
diff --git a/types/known/fieldmaskpb/field_mask.pb.go b/types/known/fieldmaskpb/field_mask.pb.go
index 91ee89a..4a04379 100644
--- a/types/known/fieldmaskpb/field_mask.pb.go
+++ b/types/known/fieldmaskpb/field_mask.pb.go
@@ -197,24 +197,22 @@
 // An implementation may provide options to override this default behavior for
 // repeated and message fields.
 //
-// In order to reset a field's value to the default, the field must
-// be in the mask and set to the default value in the provided resource.
-// Hence, in order to reset all fields of a resource, provide a default
-// instance of the resource and set all fields in the mask, or do
-// not provide a mask as described below.
+// Note that libraries which implement FieldMask resolution have various
+// different behaviors in the face of empty masks or the special "*" mask.
+// When implementing a service you should confirm these cases have the
+// appropriate behavior in the underlying FieldMask library that you desire,
+// and you may need to special case those cases in your application code if
+// the underlying field mask library behavior differs from your intended
+// service semantics.
 //
-// If a field mask is not present on update, the operation applies to
-// all fields (as if a field mask of all fields has been specified).
-// Note that in the presence of schema evolution, this may mean that
-// fields the client does not know and has therefore not filled into
-// the request will be reset to their default. If this is unwanted
-// behavior, a specific service may require a client to always specify
-// a field mask, producing an error if not.
+// Update methods implementing https://google.aip.dev/134
+// - MUST support the special value * meaning "full replace"
+// - MUST treat an omitted field mask as "replace fields which are present".
 //
-// As with get operations, the location of the resource which
-// describes the updated values in the request message depends on the
-// operation kind. In any case, the effect of the field mask is
-// required to be honored by the API.
+// Other methods implementing https://google.aip.dev/157
+// - SHOULD support the special value "*" to mean "get all".
+// - MUST treat an omitted field mask to mean "get all", unless otherwise
+// documented.
 //
 // ## Considerations for HTTP REST
 //
diff --git a/types/known/structpb/struct.pb.go b/types/known/structpb/struct.pb.go
index 30411b7..8325a50 100644
--- a/types/known/structpb/struct.pb.go
+++ b/types/known/structpb/struct.pb.go
@@ -131,10 +131,15 @@
 	unsafe "unsafe"
 )
 
-// `NullValue` is a singleton enumeration to represent the null value for the
-// `Value` type union.
+// Represents a JSON `null`.
 //
-// The JSON representation for `NullValue` is JSON `null`.
+// `NullValue` is a sentinel, using an enum with only one value to represent
+// the null value for the `Value` type union.
+//
+// A field of type `NullValue` with any value other than `0` is considered
+// invalid. Most ProtoJSON serializers will emit a Value with a `null_value` set
+// as a JSON `null` regardless of the integer value, and so will round trip to
+// a `0` value.
 type NullValue int32
 
 const (
@@ -179,14 +184,19 @@
 	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0}
 }
 
-// `Struct` represents a structured data value, consisting of fields
-// which map to dynamically typed values. In some languages, `Struct`
-// might be supported by a native representation. For example, in
-// scripting languages like JS a struct is represented as an
-// object. The details of that representation are described together
-// with the proto support for the language.
+// Represents a JSON object.
 //
-// The JSON representation for `Struct` is JSON object.
+// An unordered key-value map, intending to perfectly capture the semantics of a
+// JSON object. This enables parsing any arbitrary JSON payload as a message
+// field in ProtoJSON format.
+//
+// This follows RFC 8259 guidelines for interoperable JSON: notably this type
+// cannot represent large Int64 values or `NaN`/`Infinity` numbers,
+// since the JSON format generally does not support those values in its number
+// type.
+//
+// If you do not intend to parse arbitrary JSON into your message, a custom
+// typed message should be preferred instead of using this type.
 type Struct struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
 	// Unordered map of dynamically typed values.
@@ -269,12 +279,12 @@
 	return nil
 }
 
+// Represents a JSON value.
+//
 // `Value` represents a dynamically typed value which can be either
 // null, a number, a string, a boolean, a recursive struct value, or a
 // list of values. A producer of value is expected to set one of these
-// variants. Absence of any variant indicates an error.
-//
-// The JSON representation for `Value` is JSON value.
+// variants. Absence of any variant is an invalid state.
 type Value struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
 	// The kind of value.
@@ -548,32 +558,35 @@
 }
 
 type Value_NullValue struct {
-	// Represents a null value.
+	// Represents a JSON `null`.
 	NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
 }
 
 type Value_NumberValue struct {
-	// Represents a double value.
+	// Represents a JSON number. Must not be `NaN`, `Infinity` or
+	// `-Infinity`, since those are not supported in JSON. This also cannot
+	// represent large Int64 values, since JSON format generally does not
+	// support them in its number type.
 	NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"`
 }
 
 type Value_StringValue struct {
-	// Represents a string value.
+	// Represents a JSON string.
 	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 
 type Value_BoolValue struct {
-	// Represents a boolean value.
+	// Represents a JSON boolean (`true` or `false` literal in JSON).
 	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"`
 }
 
 type Value_StructValue struct {
-	// Represents a structured value.
+	// Represents a JSON object.
 	StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,proto3,oneof"`
 }
 
 type Value_ListValue struct {
-	// Represents a repeated `Value`.
+	// Represents a JSON array.
 	ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,proto3,oneof"`
 }
 
@@ -589,9 +602,7 @@
 
 func (*Value_ListValue) isValue_Kind() {}
 
-// `ListValue` is a wrapper around a repeated field of values.
-//
-// The JSON representation for `ListValue` is JSON array.
+// Represents a JSON array.
 type ListValue struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
 	// Repeated field of dynamically typed values.
diff --git a/types/known/timestamppb/timestamp.pb.go b/types/known/timestamppb/timestamp.pb.go
index 484c21f..2cd6094 100644
--- a/types/known/timestamppb/timestamp.pb.go
+++ b/types/known/timestamppb/timestamp.pb.go
@@ -153,8 +153,8 @@
 // {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
 // seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
 // are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
-// is required. A proto3 JSON serializer should always use UTC (as indicated by
-// "Z") when printing the Timestamp type and a proto3 JSON parser should be
+// is required. A ProtoJSON serializer should always use UTC (as indicated by
+// "Z") when printing the Timestamp type and a ProtoJSON parser should be
 // able to accept both UTC and other timezones (as indicated by an offset).
 //
 // For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
@@ -173,7 +173,7 @@
 type Timestamp struct {
 	state protoimpl.MessageState `protogen:"open.v1"`
 	// Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
-	// be between -315576000000 and 315576000000 inclusive (which corresponds to
+	// be between -62135596800 and 253402300799 inclusive (which corresponds to
 	// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
 	Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
 	// Non-negative fractions of a second at nanosecond resolution. This field is
