|  | edition = "2023"; | 
|  |  | 
|  | package basic_test; | 
|  |  | 
|  | import "test_import_proto2.proto"; | 
|  |  | 
|  | option features.enum_type = CLOSED;  // Ignored by ruby. | 
|  | option features.field_presence = IMPLICIT; | 
|  |  | 
|  | message TestFeaturesMessage { | 
|  | int32 implicit = 1; | 
|  | int32 explicit = 2 [features.field_presence = EXPLICIT]; | 
|  | int32 legacy_required = 3 [features.field_presence = LEGACY_REQUIRED]; | 
|  |  | 
|  | repeated int32 packed = 50; | 
|  | repeated int32 expanded = 51 [features.repeated_field_encoding = EXPANDED]; | 
|  | repeated foo_bar.proto2.TestImportedMessage unpackable = 52; | 
|  |  | 
|  | TestFeaturesMessage delimited = 100 [features.message_encoding = DELIMITED]; | 
|  | TestFeaturesMessage length_prefixed = 101; | 
|  | } |