From 5d865ddd51ed3113317e5b8e14220899b1d98fb6 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 11:44:40 +0200
Subject: [PATCH 01/42] return structured serializer

---
 .../dart/libraries/dio/serialization/built_value/class.mustache | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
index 66fe59788b0..4675538c2e2 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
@@ -40,7 +40,7 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde
     factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
+    static StructuredSerializer<{{classname}}> get serializer => _${{classname}}Serializer();
 }
 
 {{!
-- 
GitLab


From fb6a81cf060306b4d7f8c904e22ae314615f5c22 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 13:40:16 +0200
Subject: [PATCH 02/42] generate samples

---
 .../lib/src/model/additional_properties_class.dart              | 2 +-
 .../lib/src/model/all_of_with_single_ref.dart                   | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart | 2 +-
 .../petstore_client_lib_fake/lib/src/model/api_response.dart    | 2 +-
 .../lib/src/model/array_of_array_of_number_only.dart            | 2 +-
 .../lib/src/model/array_of_number_only.dart                     | 2 +-
 .../petstore_client_lib_fake/lib/src/model/array_test.dart      | 2 +-
 .../petstore_client_lib_fake/lib/src/model/capitalization.dart  | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart    | 2 +-
 .../petstore_client_lib_fake/lib/src/model/cat_all_of.dart      | 2 +-
 .../petstore_client_lib_fake/lib/src/model/category.dart        | 2 +-
 .../petstore_client_lib_fake/lib/src/model/class_model.dart     | 2 +-
 .../lib/src/model/deprecated_object.dart                        | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart    | 2 +-
 .../petstore_client_lib_fake/lib/src/model/dog_all_of.dart      | 2 +-
 .../petstore_client_lib_fake/lib/src/model/enum_arrays.dart     | 2 +-
 .../petstore_client_lib_fake/lib/src/model/enum_test.dart       | 2 +-
 .../lib/src/model/file_schema_test_class.dart                   | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart    | 2 +-
 .../petstore_client_lib_fake/lib/src/model/format_test.dart     | 2 +-
 .../lib/src/model/has_only_read_only.dart                       | 2 +-
 .../lib/src/model/health_check_result.dart                      | 2 +-
 .../lib/src/model/inline_response_default.dart                  | 2 +-
 .../petstore_client_lib_fake/lib/src/model/map_test.dart        | 2 +-
 .../model/mixed_properties_and_additional_properties_class.dart | 2 +-
 .../lib/src/model/model200_response.dart                        | 2 +-
 .../petstore_client_lib_fake/lib/src/model/model_client.dart    | 2 +-
 .../petstore_client_lib_fake/lib/src/model/model_file.dart      | 2 +-
 .../petstore_client_lib_fake/lib/src/model/model_list.dart      | 2 +-
 .../petstore_client_lib_fake/lib/src/model/model_return.dart    | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/name.dart   | 2 +-
 .../petstore_client_lib_fake/lib/src/model/nullable_class.dart  | 2 +-
 .../petstore_client_lib_fake/lib/src/model/number_only.dart     | 2 +-
 .../lib/src/model/object_with_deprecated_fields.dart            | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/order.dart  | 2 +-
 .../petstore_client_lib_fake/lib/src/model/outer_composite.dart | 2 +-
 .../lib/src/model/outer_object_with_enum_property.dart          | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart    | 2 +-
 .../petstore_client_lib_fake/lib/src/model/read_only_first.dart | 2 +-
 .../lib/src/model/special_model_name.dart                       | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart    | 2 +-
 .../dart-dio/petstore_client_lib_fake/lib/src/model/user.dart   | 2 +-
 42 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index 4d45be3abbf..7b16b29c17e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -28,7 +28,7 @@ abstract class AdditionalPropertiesClass implements Built<AdditionalPropertiesCl
     factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
+    static StructuredSerializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
 }
 
 class _$AdditionalPropertiesClassSerializer implements StructuredSerializer<AdditionalPropertiesClass> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index 3319d53814d..c2a6be2b649 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -28,7 +28,7 @@ abstract class AllOfWithSingleRef implements Built<AllOfWithSingleRef, AllOfWith
     factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
+    static StructuredSerializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
 }
 
 class _$AllOfWithSingleRefSerializer implements StructuredSerializer<AllOfWithSingleRef> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index cd9084ceb28..6cb55169262 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -28,7 +28,7 @@ abstract class Animal implements Built<Animal, AnimalBuilder> {
     factory Animal([void updates(AnimalBuilder b)]) = _$Animal;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Animal> get serializer => _$AnimalSerializer();
+    static StructuredSerializer<Animal> get serializer => _$AnimalSerializer();
 }
 
 class _$AnimalSerializer implements StructuredSerializer<Animal> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index c2ebff7ffea..4227963c407 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -31,7 +31,7 @@ abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
     factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ApiResponse> get serializer => _$ApiResponseSerializer();
+    static StructuredSerializer<ApiResponse> get serializer => _$ApiResponseSerializer();
 }
 
 class _$ApiResponseSerializer implements StructuredSerializer<ApiResponse> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index 1fa583bccc1..148d20e22a4 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -24,7 +24,7 @@ abstract class ArrayOfArrayOfNumberOnly implements Built<ArrayOfArrayOfNumberOnl
     factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
+    static StructuredSerializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
 }
 
 class _$ArrayOfArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfArrayOfNumberOnly> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index fcbd7d393be..10ad7056812 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -24,7 +24,7 @@ abstract class ArrayOfNumberOnly implements Built<ArrayOfNumberOnly, ArrayOfNumb
     factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
+    static StructuredSerializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
 }
 
 class _$ArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfNumberOnly> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index 8025d141c12..c70ed7e1934 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -33,7 +33,7 @@ abstract class ArrayTest implements Built<ArrayTest, ArrayTestBuilder> {
     factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ArrayTest> get serializer => _$ArrayTestSerializer();
+    static StructuredSerializer<ArrayTest> get serializer => _$ArrayTestSerializer();
 }
 
 class _$ArrayTestSerializer implements StructuredSerializer<ArrayTest> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index 15a8f080e9b..b29afd418c2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -44,7 +44,7 @@ abstract class Capitalization implements Built<Capitalization, CapitalizationBui
     factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Capitalization> get serializer => _$CapitalizationSerializer();
+    static StructuredSerializer<Capitalization> get serializer => _$CapitalizationSerializer();
 }
 
 class _$CapitalizationSerializer implements StructuredSerializer<Capitalization> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 2c905783610..7f056101de3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -36,7 +36,7 @@ abstract class Cat implements Built<Cat, CatBuilder> {
     factory Cat([void updates(CatBuilder b)]) = _$Cat;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Cat> get serializer => _$CatSerializer();
+    static StructuredSerializer<Cat> get serializer => _$CatSerializer();
 }
 
 class _$CatSerializer implements StructuredSerializer<Cat> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index 1734098fe22..e88a50049ee 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -23,7 +23,7 @@ abstract class CatAllOf implements Built<CatAllOf, CatAllOfBuilder> {
     factory CatAllOf([void updates(CatAllOfBuilder b)]) = _$CatAllOf;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<CatAllOf> get serializer => _$CatAllOfSerializer();
+    static StructuredSerializer<CatAllOf> get serializer => _$CatAllOfSerializer();
 }
 
 class _$CatAllOfSerializer implements StructuredSerializer<CatAllOf> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index 9ee9a94a3e7..37ee8880c1b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -28,7 +28,7 @@ abstract class Category implements Built<Category, CategoryBuilder> {
     factory Category([void updates(CategoryBuilder b)]) = _$Category;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Category> get serializer => _$CategorySerializer();
+    static StructuredSerializer<Category> get serializer => _$CategorySerializer();
 }
 
 class _$CategorySerializer implements StructuredSerializer<Category> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index ca90835c83d..edfef02488d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -23,7 +23,7 @@ abstract class ClassModel implements Built<ClassModel, ClassModelBuilder> {
     factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
+    static StructuredSerializer<ClassModel> get serializer => _$ClassModelSerializer();
 }
 
 class _$ClassModelSerializer implements StructuredSerializer<ClassModel> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index 98db39b4f44..75727a138a5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -23,7 +23,7 @@ abstract class DeprecatedObject implements Built<DeprecatedObject, DeprecatedObj
     factory DeprecatedObject([void updates(DeprecatedObjectBuilder b)]) = _$DeprecatedObject;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
+    static StructuredSerializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
 }
 
 class _$DeprecatedObjectSerializer implements StructuredSerializer<DeprecatedObject> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 9e36ec77bd8..d1ac0e6b9c2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -36,7 +36,7 @@ abstract class Dog implements Built<Dog, DogBuilder> {
     factory Dog([void updates(DogBuilder b)]) = _$Dog;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Dog> get serializer => _$DogSerializer();
+    static StructuredSerializer<Dog> get serializer => _$DogSerializer();
 }
 
 class _$DogSerializer implements StructuredSerializer<Dog> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index 23387e4da75..fb0ca48183f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -23,7 +23,7 @@ abstract class DogAllOf implements Built<DogAllOf, DogAllOfBuilder> {
     factory DogAllOf([void updates(DogAllOfBuilder b)]) = _$DogAllOf;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<DogAllOf> get serializer => _$DogAllOfSerializer();
+    static StructuredSerializer<DogAllOf> get serializer => _$DogAllOfSerializer();
 }
 
 class _$DogAllOfSerializer implements StructuredSerializer<DogAllOf> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index 2626b354264..7d3b6f430e9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -30,7 +30,7 @@ abstract class EnumArrays implements Built<EnumArrays, EnumArraysBuilder> {
     factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<EnumArrays> get serializer => _$EnumArraysSerializer();
+    static StructuredSerializer<EnumArrays> get serializer => _$EnumArraysSerializer();
 }
 
 class _$EnumArraysSerializer implements StructuredSerializer<EnumArrays> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index ff022e646e8..543c302895e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -64,7 +64,7 @@ abstract class EnumTest implements Built<EnumTest, EnumTestBuilder> {
     factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<EnumTest> get serializer => _$EnumTestSerializer();
+    static StructuredSerializer<EnumTest> get serializer => _$EnumTestSerializer();
 }
 
 class _$EnumTestSerializer implements StructuredSerializer<EnumTest> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index 7a2090e87da..68b95359373 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -29,7 +29,7 @@ abstract class FileSchemaTestClass implements Built<FileSchemaTestClass, FileSch
     factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
+    static StructuredSerializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
 }
 
 class _$FileSchemaTestClassSerializer implements StructuredSerializer<FileSchemaTestClass> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index dd3691968d4..aca4f94f849 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -24,7 +24,7 @@ abstract class Foo implements Built<Foo, FooBuilder> {
     factory Foo([void updates(FooBuilder b)]) = _$Foo;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Foo> get serializer => _$FooSerializer();
+    static StructuredSerializer<Foo> get serializer => _$FooSerializer();
 }
 
 class _$FooSerializer implements StructuredSerializer<Foo> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index cf1be44ab5b..dddce085978 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -87,7 +87,7 @@ abstract class FormatTest implements Built<FormatTest, FormatTestBuilder> {
     factory FormatTest([void updates(FormatTestBuilder b)]) = _$FormatTest;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<FormatTest> get serializer => _$FormatTestSerializer();
+    static StructuredSerializer<FormatTest> get serializer => _$FormatTestSerializer();
 }
 
 class _$FormatTestSerializer implements StructuredSerializer<FormatTest> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index 21b44ece26e..5f2dfcaf1b9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -27,7 +27,7 @@ abstract class HasOnlyReadOnly implements Built<HasOnlyReadOnly, HasOnlyReadOnly
     factory HasOnlyReadOnly([void updates(HasOnlyReadOnlyBuilder b)]) = _$HasOnlyReadOnly;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
+    static StructuredSerializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
 }
 
 class _$HasOnlyReadOnlySerializer implements StructuredSerializer<HasOnlyReadOnly> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index e589cb7bd35..4ab56f9b31a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -23,7 +23,7 @@ abstract class HealthCheckResult implements Built<HealthCheckResult, HealthCheck
     factory HealthCheckResult([void updates(HealthCheckResultBuilder b)]) = _$HealthCheckResult;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
+    static StructuredSerializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
 }
 
 class _$HealthCheckResultSerializer implements StructuredSerializer<HealthCheckResult> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
index b611f8beb6a..8278df313b4 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
@@ -24,7 +24,7 @@ abstract class InlineResponseDefault implements Built<InlineResponseDefault, Inl
     factory InlineResponseDefault([void updates(InlineResponseDefaultBuilder b)]) = _$InlineResponseDefault;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<InlineResponseDefault> get serializer => _$InlineResponseDefaultSerializer();
+    static StructuredSerializer<InlineResponseDefault> get serializer => _$InlineResponseDefaultSerializer();
 }
 
 class _$InlineResponseDefaultSerializer implements StructuredSerializer<InlineResponseDefault> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index 16df0490e16..31e2195eb66 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -37,7 +37,7 @@ abstract class MapTest implements Built<MapTest, MapTestBuilder> {
     factory MapTest([void updates(MapTestBuilder b)]) = _$MapTest;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<MapTest> get serializer => _$MapTestSerializer();
+    static StructuredSerializer<MapTest> get serializer => _$MapTestSerializer();
 }
 
 class _$MapTestSerializer implements StructuredSerializer<MapTest> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 27c6993cc70..3cc42d89c6b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -33,7 +33,7 @@ abstract class MixedPropertiesAndAdditionalPropertiesClass implements Built<Mixe
     factory MixedPropertiesAndAdditionalPropertiesClass([void updates(MixedPropertiesAndAdditionalPropertiesClassBuilder b)]) = _$MixedPropertiesAndAdditionalPropertiesClass;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
+    static StructuredSerializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
 }
 
 class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements StructuredSerializer<MixedPropertiesAndAdditionalPropertiesClass> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 7392f71fe84..551edc42d15 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -27,7 +27,7 @@ abstract class Model200Response implements Built<Model200Response, Model200Respo
     factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Model200Response> get serializer => _$Model200ResponseSerializer();
+    static StructuredSerializer<Model200Response> get serializer => _$Model200ResponseSerializer();
 }
 
 class _$Model200ResponseSerializer implements StructuredSerializer<Model200Response> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 23c30a77f2b..37788509b7e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -23,7 +23,7 @@ abstract class ModelClient implements Built<ModelClient, ModelClientBuilder> {
     factory ModelClient([void updates(ModelClientBuilder b)]) = _$ModelClient;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ModelClient> get serializer => _$ModelClientSerializer();
+    static StructuredSerializer<ModelClient> get serializer => _$ModelClientSerializer();
 }
 
 class _$ModelClientSerializer implements StructuredSerializer<ModelClient> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index aa7b5ecfedd..07ad3c89587 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -24,7 +24,7 @@ abstract class ModelFile implements Built<ModelFile, ModelFileBuilder> {
     factory ModelFile([void updates(ModelFileBuilder b)]) = _$ModelFile;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ModelFile> get serializer => _$ModelFileSerializer();
+    static StructuredSerializer<ModelFile> get serializer => _$ModelFileSerializer();
 }
 
 class _$ModelFileSerializer implements StructuredSerializer<ModelFile> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index 87e10153b1a..2194c1b24d7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -23,7 +23,7 @@ abstract class ModelList implements Built<ModelList, ModelListBuilder> {
     factory ModelList([void updates(ModelListBuilder b)]) = _$ModelList;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ModelList> get serializer => _$ModelListSerializer();
+    static StructuredSerializer<ModelList> get serializer => _$ModelListSerializer();
 }
 
 class _$ModelListSerializer implements StructuredSerializer<ModelList> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index c63e0464faa..99fda9e75ea 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -23,7 +23,7 @@ abstract class ModelReturn implements Built<ModelReturn, ModelReturnBuilder> {
     factory ModelReturn([void updates(ModelReturnBuilder b)]) = _$ModelReturn;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ModelReturn> get serializer => _$ModelReturnSerializer();
+    static StructuredSerializer<ModelReturn> get serializer => _$ModelReturnSerializer();
 }
 
 class _$ModelReturnSerializer implements StructuredSerializer<ModelReturn> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index 78f9f8e545e..6eaea760741 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -35,7 +35,7 @@ abstract class Name implements Built<Name, NameBuilder> {
     factory Name([void updates(NameBuilder b)]) = _$Name;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Name> get serializer => _$NameSerializer();
+    static StructuredSerializer<Name> get serializer => _$NameSerializer();
 }
 
 class _$NameSerializer implements StructuredSerializer<Name> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index efddc42e307..e94bd94780f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -70,7 +70,7 @@ abstract class NullableClass implements Built<NullableClass, NullableClassBuilde
     factory NullableClass([void updates(NullableClassBuilder b)]) = _$NullableClass;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<NullableClass> get serializer => _$NullableClassSerializer();
+    static StructuredSerializer<NullableClass> get serializer => _$NullableClassSerializer();
 }
 
 class _$NullableClassSerializer implements StructuredSerializer<NullableClass> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index e90cc9b9340..4a6d8958bbd 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -23,7 +23,7 @@ abstract class NumberOnly implements Built<NumberOnly, NumberOnlyBuilder> {
     factory NumberOnly([void updates(NumberOnlyBuilder b)]) = _$NumberOnly;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<NumberOnly> get serializer => _$NumberOnlySerializer();
+    static StructuredSerializer<NumberOnly> get serializer => _$NumberOnlySerializer();
 }
 
 class _$NumberOnlySerializer implements StructuredSerializer<NumberOnly> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index 881ede54d0d..a665cea077b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -37,7 +37,7 @@ abstract class ObjectWithDeprecatedFields implements Built<ObjectWithDeprecatedF
     factory ObjectWithDeprecatedFields([void updates(ObjectWithDeprecatedFieldsBuilder b)]) = _$ObjectWithDeprecatedFields;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
+    static StructuredSerializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
 }
 
 class _$ObjectWithDeprecatedFieldsSerializer implements StructuredSerializer<ObjectWithDeprecatedFields> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index 507a1e3a98d..c0ab791ac1e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -47,7 +47,7 @@ abstract class Order implements Built<Order, OrderBuilder> {
     factory Order([void updates(OrderBuilder b)]) = _$Order;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Order> get serializer => _$OrderSerializer();
+    static StructuredSerializer<Order> get serializer => _$OrderSerializer();
 }
 
 class _$OrderSerializer implements StructuredSerializer<Order> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index 0715bdff305..8bed955490a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -31,7 +31,7 @@ abstract class OuterComposite implements Built<OuterComposite, OuterCompositeBui
     factory OuterComposite([void updates(OuterCompositeBuilder b)]) = _$OuterComposite;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
+    static StructuredSerializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
 }
 
 class _$OuterCompositeSerializer implements StructuredSerializer<OuterComposite> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index 91524a285b8..db171e2db1e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -25,7 +25,7 @@ abstract class OuterObjectWithEnumProperty implements Built<OuterObjectWithEnumP
     factory OuterObjectWithEnumProperty([void updates(OuterObjectWithEnumPropertyBuilder b)]) = _$OuterObjectWithEnumProperty;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
+    static StructuredSerializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
 }
 
 class _$OuterObjectWithEnumPropertySerializer implements StructuredSerializer<OuterObjectWithEnumProperty> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index 8ed90d104aa..ed798c12f76 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -48,7 +48,7 @@ abstract class Pet implements Built<Pet, PetBuilder> {
     factory Pet([void updates(PetBuilder b)]) = _$Pet;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Pet> get serializer => _$PetSerializer();
+    static StructuredSerializer<Pet> get serializer => _$PetSerializer();
 }
 
 class _$PetSerializer implements StructuredSerializer<Pet> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index b9f108fb625..bbf2bce1cad 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -27,7 +27,7 @@ abstract class ReadOnlyFirst implements Built<ReadOnlyFirst, ReadOnlyFirstBuilde
     factory ReadOnlyFirst([void updates(ReadOnlyFirstBuilder b)]) = _$ReadOnlyFirst;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
+    static StructuredSerializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
 }
 
 class _$ReadOnlyFirstSerializer implements StructuredSerializer<ReadOnlyFirst> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index dcfe12bb066..f9a7b1dcca4 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -23,7 +23,7 @@ abstract class SpecialModelName implements Built<SpecialModelName, SpecialModelN
     factory SpecialModelName([void updates(SpecialModelNameBuilder b)]) = _$SpecialModelName;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
+    static StructuredSerializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
 }
 
 class _$SpecialModelNameSerializer implements StructuredSerializer<SpecialModelName> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index 5a7ed38d94c..1135ca766be 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -27,7 +27,7 @@ abstract class Tag implements Built<Tag, TagBuilder> {
     factory Tag([void updates(TagBuilder b)]) = _$Tag;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<Tag> get serializer => _$TagSerializer();
+    static StructuredSerializer<Tag> get serializer => _$TagSerializer();
 }
 
 class _$TagSerializer implements StructuredSerializer<Tag> {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index d590c20bdc7..b783555f5de 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -52,7 +52,7 @@ abstract class User implements Built<User, UserBuilder> {
     factory User([void updates(UserBuilder b)]) = _$User;
 
     @BuiltValueSerializer(custom: true)
-    static Serializer<User> get serializer => _$UserSerializer();
+    static StructuredSerializer<User> get serializer => _$UserSerializer();
 }
 
 class _$UserSerializer implements StructuredSerializer<User> {
-- 
GitLab


From a02d3e7292fe9072df1cfcc041c623cabe827656 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 19:37:06 +0200
Subject: [PATCH 03/42] implmented postProcessAllModels to fix assignment of
 inherited models

---
 .../languages/DartDioClientCodegen.java       | 55 ++++++++++++++++++-
 1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index b8ec826fd94..eab6a15ca3d 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -43,6 +43,7 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static org.openapitools.codegen.utils.StringUtils.underscore;
 
@@ -331,6 +332,56 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
         return objs;
     }
 
+    @Override
+    public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs) {
+        objs = super.postProcessAllModels(objs);
+        Map<String, CodegenModel> allModels = new HashMap<>();
+        for (ModelsMap modelsEntries : objs.values()) {
+            for (ModelMap modelsMap : modelsEntries.getModels()) {
+                CodegenModel model = modelsMap.getModel();
+                allModels.put(model.getClassname(), model);
+            }
+        }
+
+        for (CodegenModel cm : allModels.values()) {
+            List<String> interfaces = cm.getInterfaces();
+            if (interfaces != null && !interfaces.isEmpty()) {
+                cm.vendorExtensions.put("x-is-child", true);
+                // has parents, is child
+                List<CodegenModel> parents = new ArrayList<>();
+                Set<String> parentPropNames = new HashSet<>();
+                for (String parentName : interfaces) {
+                    CodegenModel parentModel = allModels.get(parentName);
+                    for (CodegenProperty parentProp : parentModel.getAllVars()) {
+                        parentPropNames.add(parentProp.getName());
+                    }
+                    parents.add(parentModel);
+                    parentModel.vendorExtensions.put("x-is-parent", true);
+                    List<CodegenModel> children = parentModel.getChildren();
+                    if (children == null) {
+                        parentModel.setChildren(children = new ArrayList<>());
+                    }
+                    parentModel.imports.add(cm.getClassFilename() + ".dart");
+                    // every model is iterated exactly once, so children will always have unique
+                    // items
+                    children.add(cm);
+                }
+                cm.setInterfaceModels(parents);
+
+                // check for inherited props
+                for (CodegenProperty prop : Stream.concat(cm.getVars().stream(), cm.getAllVars().stream())
+                        .collect(Collectors.toList())) {
+                    if (parentPropNames.contains(prop.getName())) {
+                        prop.isInherited = true;
+                    }
+                }
+            }
+
+        }
+
+        return objs;
+    }
+
     @Override
     public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
         super.postProcessModelProperty(model, property);
@@ -361,7 +412,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
     public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
         super.postProcessOperationsWithModels(objs, allModels);
         OperationMap operations = objs.getOperations();
-        List<CodegenOperation> operationList =  operations.getOperation();
+        List<CodegenOperation> operationList = operations.getOperation();
 
         Set<String> resultImports = new HashSet<>();
 
@@ -403,7 +454,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                 for (CodegenParameter param : op.allParams) {
                     // Generate serializer factories for all container type parameters.
                     // But skip binary and file parameters, JSON serializers don't make sense there.
-                    if (param.isContainer && !(param.isBinary || param.isFile )) {
+                    if (param.isContainer && !(param.isBinary || param.isFile)) {
                         addBuiltValueSerializer(new BuiltValueSerializer(
                                 param.isArray,
                                 param.uniqueItems,
-- 
GitLab


From 5a7057618c79cd625f13a7ea6417f20ec57c7b3c Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 19:37:44 +0200
Subject: [PATCH 04/42] Templates now respect inheritance

---
 .../serialization/built_value/class.mustache  | 130 +-----------------
 .../built_value/class_child.mustache          |  43 ++++++
 .../class_child_serializer.mustache           |  88 ++++++++++++
 .../built_value/class_parent.mustache         |  46 +++++++
 .../class_parent_serializer.mustache          |  43 ++++++
 5 files changed, 223 insertions(+), 127 deletions(-)
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
index 4675538c2e2..495f3d232cd 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
@@ -1,135 +1,11 @@
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
+{{#imports}}
+{{/imports}}
 part '{{classFilename}}.g.dart';
 
-{{!
-    Classes with polymorphism or composition may generate unused imports,
-    these need to be ignored for said classes so that there are no lint errors.
-}}
-{{#parentModel}}
-// ignore_for_file: unused_import
-
-{{/parentModel}}
-/// {{{description}}}{{^description}}{{classname}}{{/description}}
-{{#hasVars}}
-///
-/// Properties:
-{{#allVars}}
-/// * [{{{name}}}] {{#description}}- {{{.}}}{{/description}}
-{{/allVars}}
-{{/hasVars}}
-abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builder> {
-{{#vars}}
-    {{#description}}
-    /// {{{.}}}
-    {{/description}}
-    @BuiltValueField(wireName: r'{{baseName}}')
-    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
-    {{#allowableValues}}
-    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
-    {{/allowableValues}}
-
-{{/vars}}
-    {{classname}}._();
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults({{{classname}}}Builder b) => b{{#vars}}{{#defaultValue}}
-        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vars}};
-
-    factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
-
-    @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<{{classname}}> get serializer => _${{classname}}Serializer();
-}
-
-{{!
-    Generate a custom serializer in order to support combinations of required and nullable.
-    By default built_value does not serialize null fields.
-}}
-class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> {
-    @override
-    final Iterable<Type> types = const [{{classname}}, _${{classname}}];
-
-    @override
-    final String wireName = r'{{classname}}';
-
-    @override
-    Iterable<Object?> serialize(Serializers serializers, {{{classname}}} object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        {{#vars}}
-        {{#required}}
-        {{!
-            A required property need to always be part of the serialized output.
-            When it is nullable, null is serialized, otherwise it is an error if it is null.
-        }}
-        result
-            ..add(r'{{baseName}}')
-            ..add({{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}},
-                specifiedType: const {{>serialization/built_value/variable_serializer_type}}));
-        {{/required}}
-        {{^required}}
-        if (object.{{{name}}} != null) {
-            {{! Non-required properties are only serialized if not null. }}
-            result
-                ..add(r'{{baseName}}')
-                ..add(serializers.serialize(object.{{{name}}},
-                    specifiedType: const {{>serialization/built_value/variable_serializer_type}}));
-        }
-        {{/required}}
-        {{/vars}}
-        return result;
-    }
-
-    @override
-    {{classname}} deserialize(Serializers serializers, Iterable<Object?> serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = {{classname}}Builder();
+{{#vendorExtensions.x-is-parent}}{{>serialization/built_value/class_parent}}{{/vendorExtensions.x-is-parent}}{{^vendorExtensions.x-is-parent}}{{>serialization/built_value/class_child}}{{/vendorExtensions.x-is-parent}}
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
-            switch (key) {
-                {{#vars}}
-                case r'{{baseName}}':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
-                    {{#isNullable}}
-                    if (valueDes == null) continue;
-                    {{/isNullable}}
-                    {{#isContainer}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isContainer}}
-                    {{^isContainer}}
-                    {{#isEnum}}
-                    result.{{{name}}} = valueDes;
-                    {{/isEnum}}
-                    {{^isEnum}}
-                    {{#isModel}}
-                    {{#isPrimitiveType}}
-                    {{! These are models that have been manually marked as primitive via generator param. }}
-                    result.{{{name}}} = valueDes;
-                    {{/isPrimitiveType}}
-                    {{^isPrimitiveType}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isPrimitiveType}}
-                    {{/isModel}}
-                    {{^isModel}}
-                    result.{{{name}}} = valueDes;
-                    {{/isModel}}
-                    {{/isEnum}}
-                    {{/isContainer}}
-                    break;
-                {{/vars}}
-            }
-        }
-        return result.build();
-    }
-}
 {{!
     Generate an enum for any variables that are declared as inline enums
     isEnum is only true for inline variables that are enums.
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
new file mode 100644
index 00000000000..e975ecd12eb
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
@@ -0,0 +1,43 @@
+{{!
+    Classes with polymorphism or composition may generate unused imports,
+    these need to be ignored for said classes so that there are no lint errors.
+}}
+{{#parentModel}}
+// ignore_for_file: unused_import
+
+{{/parentModel}}
+/// {{{description}}}{{^description}}{{classname}}{{/description}}
+{{#hasVars}}
+///
+/// Properties:
+{{#allVars}}
+/// * [{{{name}}}] {{#description}}- {{{.}}}{{/description}}
+{{/allVars}}
+{{/hasVars}}
+@BuiltValue()
+abstract class {{classname}} implements {{#interfaces}}{{{.}}}, {{/interfaces}}Built<{{classname}}, {{classname}}Builder> {
+{{#vars}}
+{{^isInherited}}
+    {{#description}}
+    /// {{{.}}}
+    {{/description}}
+    @BuiltValueField(wireName: r'{{baseName}}')
+    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
+    {{#allowableValues}}
+    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
+    {{/allowableValues}}
+{{/isInherited}}
+{{/vars}}
+    {{classname}}._();
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults({{{classname}}}Builder b) => b{{#vars}}{{#defaultValue}}
+        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vars}};
+
+    factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
+}
+
+{{>serialization/built_value/class_child_serializer}}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache
new file mode 100644
index 00000000000..7fbe7807397
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache
@@ -0,0 +1,88 @@
+
+{{!
+    Generate a custom serializer in order to support combinations of required and nullable.
+    By default built_value does not serialize null fields.
+}}
+class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> {
+    @override
+    final Iterable<Type> types = const [{{classname}}, _${{classname}}];
+
+    @override
+    final String wireName = r'{{classname}}';
+
+    @override
+    Iterable<Object?> serialize(Serializers serializers, {{{classname}}} object,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = <Object?>[];
+        {{#vars}}
+        {{#required}}
+        {{!
+            A required property need to always be part of the serialized output.
+            When it is nullable, null is serialized, otherwise it is an error if it is null.
+        }}
+        result
+            ..add(r'{{baseName}}')
+            ..add({{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}},
+                specifiedType: const {{>serialization/built_value/variable_serializer_type}}));
+        {{/required}}
+        {{^required}}
+        if (object.{{{name}}} != null) {
+            {{! Non-required properties are only serialized if not null. }}
+            result
+                ..add(r'{{baseName}}')
+                ..add(serializers.serialize(object.{{{name}}},
+                    specifiedType: const {{>serialization/built_value/variable_serializer_type}}));
+        }
+        {{/required}}
+        {{/vars}}
+        return result;
+    }
+
+    @override
+    {{classname}} deserialize(Serializers serializers, Iterable<Object?> serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = {{classname}}Builder();
+
+        final iterator = serialized.iterator;
+        while (iterator.moveNext()) {
+            final key = iterator.current as String;
+            iterator.moveNext();
+            final Object? value = iterator.current;
+            
+            switch (key) {
+                {{#vars}}
+                case r'{{baseName}}':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
+                    {{#isNullable}}
+                    if (valueDes == null) continue;
+                    {{/isNullable}}
+                    {{#isContainer}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isContainer}}
+                    {{^isContainer}}
+                    {{#isEnum}}
+                    result.{{{name}}} = valueDes;
+                    {{/isEnum}}
+                    {{^isEnum}}
+                    {{#isModel}}
+                    {{#isPrimitiveType}}
+                    {{! These are models that have been manually marked as primitive via generator param. }}
+                    result.{{{name}}} = valueDes;
+                    {{/isPrimitiveType}}
+                    {{^isPrimitiveType}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isPrimitiveType}}
+                    {{/isModel}}
+                    {{^isModel}}
+                    result.{{{name}}} = valueDes;
+                    {{/isModel}}
+                    {{/isEnum}}
+                    {{/isContainer}}
+                    break;
+                {{/vars}}
+            }
+        }
+        return result.build();
+    }
+}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache
new file mode 100644
index 00000000000..184833f741d
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache
@@ -0,0 +1,46 @@
+{{!
+    Classes with polymorphism or composition may generate unused imports,
+    these need to be ignored for said classes so that there are no lint errors.
+}}
+{{#parentModel}}
+// ignore_for_file: unused_import
+
+{{/parentModel}}
+/// {{{description}}}{{^description}}{{classname}}{{/description}}
+{{#hasVars}}
+///
+/// Properties:
+{{#allVars}}
+/// * [{{{name}}}] {{#description}}- {{{.}}}{{/description}}
+{{/allVars}}
+{{/hasVars}}
+@BuiltValue(instantiable: false)
+abstract class {{classname}} {{#interfaces}}implements {{{.}}},{{/interfaces}} {
+{{#vars}}
+    {{#description}}
+    /// {{{.}}}
+    {{/description}}
+    @BuiltValueField(wireName: r'{{baseName}}')
+    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
+    {{#allowableValues}}
+    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
+    {{/allowableValues}}
+
+{{/vars}}
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults({{{classname}}}Builder b) => b{{#vars}}{{#defaultValue}}
+        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vars}};
+
+{{#hasDiscriminatorWithNonEmptyMapping}}
+    @BuiltValueSerializer(custom: true)
+    static StructuredSerializer<{{classname}}> get serializer => _${{classname}}Serializer();
+{{/hasDiscriminatorWithNonEmptyMapping}}
+}
+
+{{!
+    if the class has a discriminator, it can be serialized.
+    otherwise, it's just a normal interface
+}}
+{{#hasDiscriminatorWithNonEmptyMapping}}
+{{>serialization/built_value/class_parent_serializer}}
+{{/hasDiscriminatorWithNonEmptyMapping}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache
new file mode 100644
index 00000000000..f233430af63
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache
@@ -0,0 +1,43 @@
+class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> {
+    @override
+    final Iterable<Type> types = const [{{classname}}];
+
+    @override
+    final String wireName = r'{{classname}}';
+
+    @override
+    Iterable<Object?> serialize(Serializers serializers, {{{classname}}} object,
+        {FullType specifiedType = FullType.unspecified}) {
+        {{!
+            delegate serialization to concrete serializer
+        }}
+        {{#discriminator}}
+        {{#mappedModels}}
+        if (object is {{modelName}}) {
+            final _serializer = {{modelName}}.serializer as StructuredSerializer<{{modelName}}>;
+            return _serializer.serialize(serializers, object, specifiedType: FullType({{modelName}}));
+        }
+        {{/mappedModels}}
+        {{/discriminator}}
+
+        throw UnsupportedError('Discriminator not found for type ${object.runtimeType}');
+    }
+
+    @override
+    {{classname}} deserialize(Serializers serializers, Iterable<Object?> serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        {{#discriminator}}
+        final serializedList = serialized.toList();
+        final discIndex = serializedList.indexOf('{{propertyName}}') + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex]).toString();
+        switch (discValue) {
+            {{#mappedModels}}
+            case '{{mappingName}}':
+                final _serializer = {{modelName}}.serializer as StructuredSerializer<{{modelName}}>;
+                return _serializer.deserialize(serializers, serialized, specifiedType: FullType({{modelName}}));
+            {{/mappedModels}}
+        }    
+        throw UnsupportedError('Discriminator not found $discValue');
+        {{/discriminator}}
+    }
+}
\ No newline at end of file
-- 
GitLab


From dc29490bbf5382f351e4f426ccb9c03118f66ca7 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 19:38:00 +0200
Subject: [PATCH 05/42] regen dart samples

---
 .../model/additional_properties_class.dart    | 10 +--
 .../lib/src/model/all_of_with_single_ref.dart | 10 +--
 .../lib/src/model/animal.dart                 | 68 ++++++++-----------
 .../lib/src/model/api_response.dart           | 11 +--
 .../model/array_of_array_of_number_only.dart  |  9 ++-
 .../lib/src/model/array_of_number_only.dart   |  9 ++-
 .../lib/src/model/array_test.dart             | 11 +--
 .../lib/src/model/capitalization.dart         | 14 ++--
 .../lib/src/model/cat.dart                    | 19 ++----
 .../lib/src/model/cat_all_of.dart             | 51 +-------------
 .../lib/src/model/category.dart               | 10 +--
 .../lib/src/model/class_model.dart            |  9 ++-
 .../lib/src/model/deprecated_object.dart      |  9 ++-
 .../lib/src/model/dog.dart                    | 19 ++----
 .../lib/src/model/dog_all_of.dart             | 51 +-------------
 .../lib/src/model/enum_arrays.dart            | 10 +--
 .../lib/src/model/enum_test.dart              | 16 ++---
 .../lib/src/model/file_schema_test_class.dart | 10 +--
 .../lib/src/model/foo.dart                    |  9 ++-
 .../lib/src/model/format_test.dart            | 24 ++-----
 .../lib/src/model/has_only_read_only.dart     | 10 +--
 .../lib/src/model/health_check_result.dart    |  9 ++-
 .../src/model/inline_response_default.dart    |  9 ++-
 .../lib/src/model/map_test.dart               | 12 ++--
 ...rties_and_additional_properties_class.dart | 11 +--
 .../lib/src/model/model200_response.dart      | 10 +--
 .../lib/src/model/model_client.dart           |  9 ++-
 .../lib/src/model/model_file.dart             |  9 ++-
 .../lib/src/model/model_list.dart             |  9 ++-
 .../lib/src/model/model_return.dart           |  9 ++-
 .../lib/src/model/name.dart                   | 12 ++--
 .../lib/src/model/nullable_class.dart         | 20 ++----
 .../lib/src/model/number_only.dart            |  9 ++-
 .../model/object_with_deprecated_fields.dart  | 12 ++--
 .../lib/src/model/order.dart                  | 14 ++--
 .../lib/src/model/outer_composite.dart        | 11 +--
 .../outer_object_with_enum_property.dart      |  9 ++-
 .../lib/src/model/pet.dart                    | 14 ++--
 .../lib/src/model/read_only_first.dart        | 10 +--
 .../lib/src/model/special_model_name.dart     |  9 ++-
 .../lib/src/model/tag.dart                    | 10 +--
 .../lib/src/model/user.dart                   | 16 ++---
 42 files changed, 270 insertions(+), 352 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index 7b16b29c17e..aba0978fa3c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -5,7 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'additional_properties_class.g.dart';
 
 /// AdditionalPropertiesClass
@@ -13,13 +12,12 @@ part 'additional_properties_class.g.dart';
 /// Properties:
 /// * [mapProperty] 
 /// * [mapOfMapProperty] 
+@BuiltValue()
 abstract class AdditionalPropertiesClass implements Built<AdditionalPropertiesClass, AdditionalPropertiesClassBuilder> {
     @BuiltValueField(wireName: r'map_property')
     BuiltMap<String, String>? get mapProperty;
-
     @BuiltValueField(wireName: r'map_of_map_property')
     BuiltMap<String, BuiltMap<String, String>>? get mapOfMapProperty;
-
     AdditionalPropertiesClass._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -28,9 +26,10 @@ abstract class AdditionalPropertiesClass implements Built<AdditionalPropertiesCl
     factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
+    static Serializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
 }
 
+
 class _$AdditionalPropertiesClassSerializer implements StructuredSerializer<AdditionalPropertiesClass> {
     @override
     final Iterable<Type> types = const [AdditionalPropertiesClass, _$AdditionalPropertiesClass];
@@ -85,3 +84,6 @@ class _$AdditionalPropertiesClassSerializer implements StructuredSerializer<Addi
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index c2a6be2b649..25869796a11 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -5,7 +5,6 @@
 import 'package:openapi/src/model/single_ref_type.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'all_of_with_single_ref.g.dart';
 
 /// AllOfWithSingleRef
@@ -13,13 +12,12 @@ part 'all_of_with_single_ref.g.dart';
 /// Properties:
 /// * [username] 
 /// * [singleRefType] 
+@BuiltValue()
 abstract class AllOfWithSingleRef implements Built<AllOfWithSingleRef, AllOfWithSingleRefBuilder> {
     @BuiltValueField(wireName: r'username')
     String? get username;
-
     @BuiltValueField(wireName: r'SingleRefType')
     SingleRefType? get singleRefType;
-
     AllOfWithSingleRef._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -28,9 +26,10 @@ abstract class AllOfWithSingleRef implements Built<AllOfWithSingleRef, AllOfWith
     factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
+    static Serializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
 }
 
+
 class _$AllOfWithSingleRefSerializer implements StructuredSerializer<AllOfWithSingleRef> {
     @override
     final Iterable<Type> types = const [AllOfWithSingleRef, _$AllOfWithSingleRef];
@@ -86,3 +85,6 @@ class _$AllOfWithSingleRefSerializer implements StructuredSerializer<AllOfWithSi
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index 6cb55169262..fba0bd22ea0 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -2,9 +2,10 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'dog.dart';
+import 'cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'animal.g.dart';
 
 /// Animal
@@ -12,28 +13,25 @@ part 'animal.g.dart';
 /// Properties:
 /// * [className] 
 /// * [color] 
-abstract class Animal implements Built<Animal, AnimalBuilder> {
+@BuiltValue(instantiable: false)
+abstract class Animal  {
     @BuiltValueField(wireName: r'className')
     String get className;
 
     @BuiltValueField(wireName: r'color')
     String? get color;
 
-    Animal._();
-
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(AnimalBuilder b) => b
         ..color = 'red';
 
-    factory Animal([void updates(AnimalBuilder b)]) = _$Animal;
-
     @BuiltValueSerializer(custom: true)
     static StructuredSerializer<Animal> get serializer => _$AnimalSerializer();
 }
 
 class _$AnimalSerializer implements StructuredSerializer<Animal> {
     @override
-    final Iterable<Type> types = const [Animal, _$Animal];
+    final Iterable<Type> types = const [Animal];
 
     @override
     final String wireName = r'Animal';
@@ -41,45 +39,35 @@ class _$AnimalSerializer implements StructuredSerializer<Animal> {
     @override
     Iterable<Object?> serialize(Serializers serializers, Animal object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        result
-            ..add(r'className')
-            ..add(serializers.serialize(object.className,
-                specifiedType: const FullType(String)));
-        if (object.color != null) {
-            result
-                ..add(r'color')
-                ..add(serializers.serialize(object.color,
-                    specifiedType: const FullType(String)));
+        if (object is Cat) {
+            final _serializer = Cat.serializer as StructuredSerializer<Cat>;
+            return _serializer.serialize(serializers, object, specifiedType: FullType(Cat));
         }
-        return result;
+        if (object is Dog) {
+            final _serializer = Dog.serializer as StructuredSerializer<Dog>;
+            return _serializer.serialize(serializers, object, specifiedType: FullType(Dog));
+        }
+
+        throw UnsupportedError('Discriminator not found for type ${object.runtimeType}');
     }
 
     @override
     Animal deserialize(Serializers serializers, Iterable<Object?> serialized,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = AnimalBuilder();
-
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
-            switch (key) {
-                case r'className':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.className = valueDes;
-                    break;
-                case r'color':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.color = valueDes;
-                    break;
-            }
-        }
-        return result.build();
+        final serializedList = serialized.toList();
+        final discIndex = serializedList.indexOf('className') + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex]).toString();
+        switch (discValue) {
+            case 'Cat':
+                final _serializer = Cat.serializer as StructuredSerializer<Cat>;
+                return _serializer.deserialize(serializers, serialized, specifiedType: FullType(Cat));
+            case 'Dog':
+                final _serializer = Dog.serializer as StructuredSerializer<Dog>;
+                return _serializer.deserialize(serializers, serialized, specifiedType: FullType(Dog));
+        }    
+        throw UnsupportedError('Discriminator not found $discValue');
     }
 }
 
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index 4227963c407..ca9fba2b124 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'api_response.g.dart';
 
 /// ApiResponse
@@ -13,16 +12,14 @@ part 'api_response.g.dart';
 /// * [code] 
 /// * [type] 
 /// * [message] 
+@BuiltValue()
 abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
     @BuiltValueField(wireName: r'code')
     int? get code;
-
     @BuiltValueField(wireName: r'type')
     String? get type;
-
     @BuiltValueField(wireName: r'message')
     String? get message;
-
     ApiResponse._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -31,9 +28,10 @@ abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
     factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ApiResponse> get serializer => _$ApiResponseSerializer();
+    static Serializer<ApiResponse> get serializer => _$ApiResponseSerializer();
 }
 
+
 class _$ApiResponseSerializer implements StructuredSerializer<ApiResponse> {
     @override
     final Iterable<Type> types = const [ApiResponse, _$ApiResponse];
@@ -99,3 +97,6 @@ class _$ApiResponseSerializer implements StructuredSerializer<ApiResponse> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index 148d20e22a4..88b9bbfa68f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -5,17 +5,16 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'array_of_array_of_number_only.g.dart';
 
 /// ArrayOfArrayOfNumberOnly
 ///
 /// Properties:
 /// * [arrayArrayNumber] 
+@BuiltValue()
 abstract class ArrayOfArrayOfNumberOnly implements Built<ArrayOfArrayOfNumberOnly, ArrayOfArrayOfNumberOnlyBuilder> {
     @BuiltValueField(wireName: r'ArrayArrayNumber')
     BuiltList<BuiltList<num>>? get arrayArrayNumber;
-
     ArrayOfArrayOfNumberOnly._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -24,9 +23,10 @@ abstract class ArrayOfArrayOfNumberOnly implements Built<ArrayOfArrayOfNumberOnl
     factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
+    static Serializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
 }
 
+
 class _$ArrayOfArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfArrayOfNumberOnly> {
     @override
     final Iterable<Type> types = const [ArrayOfArrayOfNumberOnly, _$ArrayOfArrayOfNumberOnly];
@@ -70,3 +70,6 @@ class _$ArrayOfArrayOfNumberOnlySerializer implements StructuredSerializer<Array
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index 10ad7056812..adcf272e190 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -5,17 +5,16 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'array_of_number_only.g.dart';
 
 /// ArrayOfNumberOnly
 ///
 /// Properties:
 /// * [arrayNumber] 
+@BuiltValue()
 abstract class ArrayOfNumberOnly implements Built<ArrayOfNumberOnly, ArrayOfNumberOnlyBuilder> {
     @BuiltValueField(wireName: r'ArrayNumber')
     BuiltList<num>? get arrayNumber;
-
     ArrayOfNumberOnly._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -24,9 +23,10 @@ abstract class ArrayOfNumberOnly implements Built<ArrayOfNumberOnly, ArrayOfNumb
     factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
+    static Serializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
 }
 
+
 class _$ArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfNumberOnly> {
     @override
     final Iterable<Type> types = const [ArrayOfNumberOnly, _$ArrayOfNumberOnly];
@@ -70,3 +70,6 @@ class _$ArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfNumbe
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index c70ed7e1934..7eeefa0acfb 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -6,7 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/read_only_first.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'array_test.g.dart';
 
 /// ArrayTest
@@ -15,16 +14,14 @@ part 'array_test.g.dart';
 /// * [arrayOfString] 
 /// * [arrayArrayOfInteger] 
 /// * [arrayArrayOfModel] 
+@BuiltValue()
 abstract class ArrayTest implements Built<ArrayTest, ArrayTestBuilder> {
     @BuiltValueField(wireName: r'array_of_string')
     BuiltList<String>? get arrayOfString;
-
     @BuiltValueField(wireName: r'array_array_of_integer')
     BuiltList<BuiltList<int>>? get arrayArrayOfInteger;
-
     @BuiltValueField(wireName: r'array_array_of_model')
     BuiltList<BuiltList<ReadOnlyFirst>>? get arrayArrayOfModel;
-
     ArrayTest._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -33,9 +30,10 @@ abstract class ArrayTest implements Built<ArrayTest, ArrayTestBuilder> {
     factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ArrayTest> get serializer => _$ArrayTestSerializer();
+    static Serializer<ArrayTest> get serializer => _$ArrayTestSerializer();
 }
 
+
 class _$ArrayTestSerializer implements StructuredSerializer<ArrayTest> {
     @override
     final Iterable<Type> types = const [ArrayTest, _$ArrayTest];
@@ -101,3 +99,6 @@ class _$ArrayTestSerializer implements StructuredSerializer<ArrayTest> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index b29afd418c2..bf24a814102 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'capitalization.g.dart';
 
 /// Capitalization
@@ -16,26 +15,21 @@ part 'capitalization.g.dart';
 /// * [capitalSnake] 
 /// * [sCAETHFlowPoints] 
 /// * [ATT_NAME] - Name of the pet 
+@BuiltValue()
 abstract class Capitalization implements Built<Capitalization, CapitalizationBuilder> {
     @BuiltValueField(wireName: r'smallCamel')
     String? get smallCamel;
-
     @BuiltValueField(wireName: r'CapitalCamel')
     String? get capitalCamel;
-
     @BuiltValueField(wireName: r'small_Snake')
     String? get smallSnake;
-
     @BuiltValueField(wireName: r'Capital_Snake')
     String? get capitalSnake;
-
     @BuiltValueField(wireName: r'SCA_ETH_Flow_Points')
     String? get sCAETHFlowPoints;
-
     /// Name of the pet 
     @BuiltValueField(wireName: r'ATT_NAME')
     String? get ATT_NAME;
-
     Capitalization._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -44,9 +38,10 @@ abstract class Capitalization implements Built<Capitalization, CapitalizationBui
     factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Capitalization> get serializer => _$CapitalizationSerializer();
+    static Serializer<Capitalization> get serializer => _$CapitalizationSerializer();
 }
 
+
 class _$CapitalizationSerializer implements StructuredSerializer<Capitalization> {
     @override
     final Iterable<Type> types = const [Capitalization, _$Capitalization];
@@ -145,3 +140,6 @@ class _$CapitalizationSerializer implements StructuredSerializer<Capitalization>
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 7f056101de3..eb10752ddd3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -6,7 +6,6 @@ import 'package:openapi/src/model/animal.dart';
 import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'cat.g.dart';
 
 // ignore_for_file: unused_import
@@ -17,16 +16,8 @@ part 'cat.g.dart';
 /// * [className] 
 /// * [color] 
 /// * [declawed] 
-abstract class Cat implements Built<Cat, CatBuilder> {
-    @BuiltValueField(wireName: r'className')
-    String get className;
-
-    @BuiltValueField(wireName: r'color')
-    String? get color;
-
-    @BuiltValueField(wireName: r'declawed')
-    bool? get declawed;
-
+@BuiltValue()
+abstract class Cat implements Animal, CatAllOf, Built<Cat, CatBuilder> {
     Cat._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -36,9 +27,10 @@ abstract class Cat implements Built<Cat, CatBuilder> {
     factory Cat([void updates(CatBuilder b)]) = _$Cat;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Cat> get serializer => _$CatSerializer();
+    static Serializer<Cat> get serializer => _$CatSerializer();
 }
 
+
 class _$CatSerializer implements StructuredSerializer<Cat> {
     @override
     final Iterable<Type> types = const [Cat, _$Cat];
@@ -102,3 +94,6 @@ class _$CatSerializer implements StructuredSerializer<Cat> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index e88a50049ee..d8c457be00f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -2,70 +2,25 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'cat_all_of.g.dart';
 
 /// CatAllOf
 ///
 /// Properties:
 /// * [declawed] 
-abstract class CatAllOf implements Built<CatAllOf, CatAllOfBuilder> {
+@BuiltValue(instantiable: false)
+abstract class CatAllOf  {
     @BuiltValueField(wireName: r'declawed')
     bool? get declawed;
 
-    CatAllOf._();
-
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(CatAllOfBuilder b) => b;
 
-    factory CatAllOf([void updates(CatAllOfBuilder b)]) = _$CatAllOf;
-
-    @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<CatAllOf> get serializer => _$CatAllOfSerializer();
 }
 
-class _$CatAllOfSerializer implements StructuredSerializer<CatAllOf> {
-    @override
-    final Iterable<Type> types = const [CatAllOf, _$CatAllOf];
 
-    @override
-    final String wireName = r'CatAllOf';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, CatAllOf object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        if (object.declawed != null) {
-            result
-                ..add(r'declawed')
-                ..add(serializers.serialize(object.declawed,
-                    specifiedType: const FullType(bool)));
-        }
-        return result;
-    }
-
-    @override
-    CatAllOf deserialize(Serializers serializers, Iterable<Object?> serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = CatAllOfBuilder();
-
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
-            switch (key) {
-                case r'declawed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(bool)) as bool;
-                    result.declawed = valueDes;
-                    break;
-            }
-        }
-        return result.build();
-    }
-}
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index 37ee8880c1b..e11332ecee4 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'category.g.dart';
 
 /// Category
@@ -12,13 +11,12 @@ part 'category.g.dart';
 /// Properties:
 /// * [id] 
 /// * [name] 
+@BuiltValue()
 abstract class Category implements Built<Category, CategoryBuilder> {
     @BuiltValueField(wireName: r'id')
     int? get id;
-
     @BuiltValueField(wireName: r'name')
     String get name;
-
     Category._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -28,9 +26,10 @@ abstract class Category implements Built<Category, CategoryBuilder> {
     factory Category([void updates(CategoryBuilder b)]) = _$Category;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Category> get serializer => _$CategorySerializer();
+    static Serializer<Category> get serializer => _$CategorySerializer();
 }
 
+
 class _$CategorySerializer implements StructuredSerializer<Category> {
     @override
     final Iterable<Type> types = const [Category, _$Category];
@@ -83,3 +82,6 @@ class _$CategorySerializer implements StructuredSerializer<Category> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index edfef02488d..93d71871a80 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'class_model.g.dart';
 
 /// Model for testing model with \"_class\" property
 ///
 /// Properties:
 /// * [class_] 
+@BuiltValue()
 abstract class ClassModel implements Built<ClassModel, ClassModelBuilder> {
     @BuiltValueField(wireName: r'_class')
     String? get class_;
-
     ClassModel._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class ClassModel implements Built<ClassModel, ClassModelBuilder> {
     factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ClassModel> get serializer => _$ClassModelSerializer();
+    static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
 }
 
+
 class _$ClassModelSerializer implements StructuredSerializer<ClassModel> {
     @override
     final Iterable<Type> types = const [ClassModel, _$ClassModel];
@@ -69,3 +69,6 @@ class _$ClassModelSerializer implements StructuredSerializer<ClassModel> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index 75727a138a5..37049fdc484 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'deprecated_object.g.dart';
 
 /// DeprecatedObject
 ///
 /// Properties:
 /// * [name] 
+@BuiltValue()
 abstract class DeprecatedObject implements Built<DeprecatedObject, DeprecatedObjectBuilder> {
     @BuiltValueField(wireName: r'name')
     String? get name;
-
     DeprecatedObject._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class DeprecatedObject implements Built<DeprecatedObject, DeprecatedObj
     factory DeprecatedObject([void updates(DeprecatedObjectBuilder b)]) = _$DeprecatedObject;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
+    static Serializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
 }
 
+
 class _$DeprecatedObjectSerializer implements StructuredSerializer<DeprecatedObject> {
     @override
     final Iterable<Type> types = const [DeprecatedObject, _$DeprecatedObject];
@@ -69,3 +69,6 @@ class _$DeprecatedObjectSerializer implements StructuredSerializer<DeprecatedObj
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index d1ac0e6b9c2..a8a9397144f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -6,7 +6,6 @@ import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'dog.g.dart';
 
 // ignore_for_file: unused_import
@@ -17,16 +16,8 @@ part 'dog.g.dart';
 /// * [className] 
 /// * [color] 
 /// * [breed] 
-abstract class Dog implements Built<Dog, DogBuilder> {
-    @BuiltValueField(wireName: r'className')
-    String get className;
-
-    @BuiltValueField(wireName: r'color')
-    String? get color;
-
-    @BuiltValueField(wireName: r'breed')
-    String? get breed;
-
+@BuiltValue()
+abstract class Dog implements Animal, DogAllOf, Built<Dog, DogBuilder> {
     Dog._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -36,9 +27,10 @@ abstract class Dog implements Built<Dog, DogBuilder> {
     factory Dog([void updates(DogBuilder b)]) = _$Dog;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Dog> get serializer => _$DogSerializer();
+    static Serializer<Dog> get serializer => _$DogSerializer();
 }
 
+
 class _$DogSerializer implements StructuredSerializer<Dog> {
     @override
     final Iterable<Type> types = const [Dog, _$Dog];
@@ -102,3 +94,6 @@ class _$DogSerializer implements StructuredSerializer<Dog> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index fb0ca48183f..ff119474394 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -2,70 +2,25 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'dog.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'dog_all_of.g.dart';
 
 /// DogAllOf
 ///
 /// Properties:
 /// * [breed] 
-abstract class DogAllOf implements Built<DogAllOf, DogAllOfBuilder> {
+@BuiltValue(instantiable: false)
+abstract class DogAllOf  {
     @BuiltValueField(wireName: r'breed')
     String? get breed;
 
-    DogAllOf._();
-
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(DogAllOfBuilder b) => b;
 
-    factory DogAllOf([void updates(DogAllOfBuilder b)]) = _$DogAllOf;
-
-    @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<DogAllOf> get serializer => _$DogAllOfSerializer();
 }
 
-class _$DogAllOfSerializer implements StructuredSerializer<DogAllOf> {
-    @override
-    final Iterable<Type> types = const [DogAllOf, _$DogAllOf];
 
-    @override
-    final String wireName = r'DogAllOf';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, DogAllOf object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        if (object.breed != null) {
-            result
-                ..add(r'breed')
-                ..add(serializers.serialize(object.breed,
-                    specifiedType: const FullType(String)));
-        }
-        return result;
-    }
-
-    @override
-    DogAllOf deserialize(Serializers serializers, Iterable<Object?> serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = DogAllOfBuilder();
-
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
-            switch (key) {
-                case r'breed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.breed = valueDes;
-                    break;
-            }
-        }
-        return result.build();
-    }
-}
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index 7d3b6f430e9..34c378c8a42 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -5,7 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'enum_arrays.g.dart';
 
 /// EnumArrays
@@ -13,15 +12,14 @@ part 'enum_arrays.g.dart';
 /// Properties:
 /// * [justSymbol] 
 /// * [arrayEnum] 
+@BuiltValue()
 abstract class EnumArrays implements Built<EnumArrays, EnumArraysBuilder> {
     @BuiltValueField(wireName: r'just_symbol')
     EnumArraysJustSymbolEnum? get justSymbol;
     // enum justSymbolEnum {  >=,  $,  };
-
     @BuiltValueField(wireName: r'array_enum')
     BuiltList<EnumArraysArrayEnumEnum>? get arrayEnum;
     // enum arrayEnumEnum {  fish,  crab,  };
-
     EnumArrays._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -30,9 +28,10 @@ abstract class EnumArrays implements Built<EnumArrays, EnumArraysBuilder> {
     factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<EnumArrays> get serializer => _$EnumArraysSerializer();
+    static Serializer<EnumArrays> get serializer => _$EnumArraysSerializer();
 }
 
+
 class _$EnumArraysSerializer implements StructuredSerializer<EnumArrays> {
     @override
     final Iterable<Type> types = const [EnumArrays, _$EnumArrays];
@@ -87,6 +86,9 @@ class _$EnumArraysSerializer implements StructuredSerializer<EnumArrays> {
     }
 }
 
+
+
+
 class EnumArraysJustSymbolEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'>=')
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index 543c302895e..a333ef3e7e1 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -9,7 +9,6 @@ import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:openapi/src/model/outer_enum_integer_default_value.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'enum_test.g.dart';
 
 /// EnumTest
@@ -23,39 +22,32 @@ part 'enum_test.g.dart';
 /// * [outerEnumInteger] 
 /// * [outerEnumDefaultValue] 
 /// * [outerEnumIntegerDefaultValue] 
+@BuiltValue()
 abstract class EnumTest implements Built<EnumTest, EnumTestBuilder> {
     @BuiltValueField(wireName: r'enum_string')
     EnumTestEnumStringEnum? get enumString;
     // enum enumStringEnum {  UPPER,  lower,  ,  };
-
     @BuiltValueField(wireName: r'enum_string_required')
     EnumTestEnumStringRequiredEnum get enumStringRequired;
     // enum enumStringRequiredEnum {  UPPER,  lower,  ,  };
-
     @BuiltValueField(wireName: r'enum_integer')
     EnumTestEnumIntegerEnum? get enumInteger;
     // enum enumIntegerEnum {  1,  -1,  };
-
     @BuiltValueField(wireName: r'enum_number')
     EnumTestEnumNumberEnum? get enumNumber;
     // enum enumNumberEnum {  1.1,  -1.2,  };
-
     @BuiltValueField(wireName: r'outerEnum')
     OuterEnum? get outerEnum;
     // enum outerEnumEnum {  placed,  approved,  delivered,  };
-
     @BuiltValueField(wireName: r'outerEnumInteger')
     OuterEnumInteger? get outerEnumInteger;
     // enum outerEnumIntegerEnum {  0,  1,  2,  };
-
     @BuiltValueField(wireName: r'outerEnumDefaultValue')
     OuterEnumDefaultValue? get outerEnumDefaultValue;
     // enum outerEnumDefaultValueEnum {  placed,  approved,  delivered,  };
-
     @BuiltValueField(wireName: r'outerEnumIntegerDefaultValue')
     OuterEnumIntegerDefaultValue? get outerEnumIntegerDefaultValue;
     // enum outerEnumIntegerDefaultValueEnum {  0,  1,  2,  };
-
     EnumTest._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -64,9 +56,10 @@ abstract class EnumTest implements Built<EnumTest, EnumTestBuilder> {
     factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<EnumTest> get serializer => _$EnumTestSerializer();
+    static Serializer<EnumTest> get serializer => _$EnumTestSerializer();
 }
 
+
 class _$EnumTestSerializer implements StructuredSerializer<EnumTest> {
     @override
     final Iterable<Type> types = const [EnumTest, _$EnumTest];
@@ -186,6 +179,9 @@ class _$EnumTestSerializer implements StructuredSerializer<EnumTest> {
     }
 }
 
+
+
+
 class EnumTestEnumStringEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'UPPER')
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index 68b95359373..24b37173d4f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -6,7 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/model_file.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'file_schema_test_class.g.dart';
 
 /// FileSchemaTestClass
@@ -14,13 +13,12 @@ part 'file_schema_test_class.g.dart';
 /// Properties:
 /// * [file] 
 /// * [files] 
+@BuiltValue()
 abstract class FileSchemaTestClass implements Built<FileSchemaTestClass, FileSchemaTestClassBuilder> {
     @BuiltValueField(wireName: r'file')
     ModelFile? get file;
-
     @BuiltValueField(wireName: r'files')
     BuiltList<ModelFile>? get files;
-
     FileSchemaTestClass._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -29,9 +27,10 @@ abstract class FileSchemaTestClass implements Built<FileSchemaTestClass, FileSch
     factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
+    static Serializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
 }
 
+
 class _$FileSchemaTestClassSerializer implements StructuredSerializer<FileSchemaTestClass> {
     @override
     final Iterable<Type> types = const [FileSchemaTestClass, _$FileSchemaTestClass];
@@ -86,3 +85,6 @@ class _$FileSchemaTestClassSerializer implements StructuredSerializer<FileSchema
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index aca4f94f849..082a17cbc85 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'foo.g.dart';
 
 /// Foo
 ///
 /// Properties:
 /// * [bar] 
+@BuiltValue()
 abstract class Foo implements Built<Foo, FooBuilder> {
     @BuiltValueField(wireName: r'bar')
     String? get bar;
-
     Foo._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -24,9 +23,10 @@ abstract class Foo implements Built<Foo, FooBuilder> {
     factory Foo([void updates(FooBuilder b)]) = _$Foo;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Foo> get serializer => _$FooSerializer();
+    static Serializer<Foo> get serializer => _$FooSerializer();
 }
 
+
 class _$FooSerializer implements StructuredSerializer<Foo> {
     @override
     final Iterable<Type> types = const [Foo, _$Foo];
@@ -70,3 +70,6 @@ class _$FooSerializer implements StructuredSerializer<Foo> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index dddce085978..c989f5ea395 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -6,7 +6,6 @@ import 'dart:typed_data';
 import 'package:openapi/src/model/date.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'format_test.g.dart';
 
 /// FormatTest
@@ -28,57 +27,42 @@ part 'format_test.g.dart';
 /// * [password] 
 /// * [patternWithDigits] - A string that is a 10 digit number. Can have leading zeros.
 /// * [patternWithDigitsAndDelimiter] - A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
+@BuiltValue()
 abstract class FormatTest implements Built<FormatTest, FormatTestBuilder> {
     @BuiltValueField(wireName: r'integer')
     int? get integer;
-
     @BuiltValueField(wireName: r'int32')
     int? get int32;
-
     @BuiltValueField(wireName: r'int64')
     int? get int64;
-
     @BuiltValueField(wireName: r'number')
     num get number;
-
     @BuiltValueField(wireName: r'float')
     double? get float;
-
     @BuiltValueField(wireName: r'double')
     double? get double_;
-
     @BuiltValueField(wireName: r'decimal')
     double? get decimal;
-
     @BuiltValueField(wireName: r'string')
     String? get string;
-
     @BuiltValueField(wireName: r'byte')
     String get byte;
-
     @BuiltValueField(wireName: r'binary')
     Uint8List? get binary;
-
     @BuiltValueField(wireName: r'date')
     Date get date;
-
     @BuiltValueField(wireName: r'dateTime')
     DateTime? get dateTime;
-
     @BuiltValueField(wireName: r'uuid')
     String? get uuid;
-
     @BuiltValueField(wireName: r'password')
     String get password;
-
     /// A string that is a 10 digit number. Can have leading zeros.
     @BuiltValueField(wireName: r'pattern_with_digits')
     String? get patternWithDigits;
-
     /// A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
     @BuiltValueField(wireName: r'pattern_with_digits_and_delimiter')
     String? get patternWithDigitsAndDelimiter;
-
     FormatTest._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -87,9 +71,10 @@ abstract class FormatTest implements Built<FormatTest, FormatTestBuilder> {
     factory FormatTest([void updates(FormatTestBuilder b)]) = _$FormatTest;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<FormatTest> get serializer => _$FormatTestSerializer();
+    static Serializer<FormatTest> get serializer => _$FormatTestSerializer();
 }
 
+
 class _$FormatTestSerializer implements StructuredSerializer<FormatTest> {
     @override
     final Iterable<Type> types = const [FormatTest, _$FormatTest];
@@ -290,3 +275,6 @@ class _$FormatTestSerializer implements StructuredSerializer<FormatTest> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index 5f2dfcaf1b9..03ab4657c53 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'has_only_read_only.g.dart';
 
 /// HasOnlyReadOnly
@@ -12,13 +11,12 @@ part 'has_only_read_only.g.dart';
 /// Properties:
 /// * [bar] 
 /// * [foo] 
+@BuiltValue()
 abstract class HasOnlyReadOnly implements Built<HasOnlyReadOnly, HasOnlyReadOnlyBuilder> {
     @BuiltValueField(wireName: r'bar')
     String? get bar;
-
     @BuiltValueField(wireName: r'foo')
     String? get foo;
-
     HasOnlyReadOnly._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -27,9 +25,10 @@ abstract class HasOnlyReadOnly implements Built<HasOnlyReadOnly, HasOnlyReadOnly
     factory HasOnlyReadOnly([void updates(HasOnlyReadOnlyBuilder b)]) = _$HasOnlyReadOnly;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
+    static Serializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
 }
 
+
 class _$HasOnlyReadOnlySerializer implements StructuredSerializer<HasOnlyReadOnly> {
     @override
     final Iterable<Type> types = const [HasOnlyReadOnly, _$HasOnlyReadOnly];
@@ -84,3 +83,6 @@ class _$HasOnlyReadOnlySerializer implements StructuredSerializer<HasOnlyReadOnl
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index 4ab56f9b31a..cead82f9781 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'health_check_result.g.dart';
 
 /// Just a string to inform instance is up and running. Make it nullable in hope to get it as pointer in generated model.
 ///
 /// Properties:
 /// * [nullableMessage] 
+@BuiltValue()
 abstract class HealthCheckResult implements Built<HealthCheckResult, HealthCheckResultBuilder> {
     @BuiltValueField(wireName: r'NullableMessage')
     String? get nullableMessage;
-
     HealthCheckResult._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class HealthCheckResult implements Built<HealthCheckResult, HealthCheck
     factory HealthCheckResult([void updates(HealthCheckResultBuilder b)]) = _$HealthCheckResult;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
+    static Serializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
 }
 
+
 class _$HealthCheckResultSerializer implements StructuredSerializer<HealthCheckResult> {
     @override
     final Iterable<Type> types = const [HealthCheckResult, _$HealthCheckResult];
@@ -70,3 +70,6 @@ class _$HealthCheckResultSerializer implements StructuredSerializer<HealthCheckR
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
index 8278df313b4..7605170fe55 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
@@ -5,17 +5,16 @@
 import 'package:openapi/src/model/foo.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'inline_response_default.g.dart';
 
 /// InlineResponseDefault
 ///
 /// Properties:
 /// * [string] 
+@BuiltValue()
 abstract class InlineResponseDefault implements Built<InlineResponseDefault, InlineResponseDefaultBuilder> {
     @BuiltValueField(wireName: r'string')
     Foo? get string;
-
     InlineResponseDefault._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -24,9 +23,10 @@ abstract class InlineResponseDefault implements Built<InlineResponseDefault, Inl
     factory InlineResponseDefault([void updates(InlineResponseDefaultBuilder b)]) = _$InlineResponseDefault;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<InlineResponseDefault> get serializer => _$InlineResponseDefaultSerializer();
+    static Serializer<InlineResponseDefault> get serializer => _$InlineResponseDefaultSerializer();
 }
 
+
 class _$InlineResponseDefaultSerializer implements StructuredSerializer<InlineResponseDefault> {
     @override
     final Iterable<Type> types = const [InlineResponseDefault, _$InlineResponseDefault];
@@ -70,3 +70,6 @@ class _$InlineResponseDefaultSerializer implements StructuredSerializer<InlineRe
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index 31e2195eb66..3d31a2973ea 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -5,7 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'map_test.g.dart';
 
 /// MapTest
@@ -15,20 +14,17 @@ part 'map_test.g.dart';
 /// * [mapOfEnumString] 
 /// * [directMap] 
 /// * [indirectMap] 
+@BuiltValue()
 abstract class MapTest implements Built<MapTest, MapTestBuilder> {
     @BuiltValueField(wireName: r'map_map_of_string')
     BuiltMap<String, BuiltMap<String, String>>? get mapMapOfString;
-
     @BuiltValueField(wireName: r'map_of_enum_string')
     BuiltMap<String, MapTestMapOfEnumStringEnum>? get mapOfEnumString;
     // enum mapOfEnumStringEnum {  UPPER,  lower,  };
-
     @BuiltValueField(wireName: r'direct_map')
     BuiltMap<String, bool>? get directMap;
-
     @BuiltValueField(wireName: r'indirect_map')
     BuiltMap<String, bool>? get indirectMap;
-
     MapTest._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -37,9 +33,10 @@ abstract class MapTest implements Built<MapTest, MapTestBuilder> {
     factory MapTest([void updates(MapTestBuilder b)]) = _$MapTest;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<MapTest> get serializer => _$MapTestSerializer();
+    static Serializer<MapTest> get serializer => _$MapTestSerializer();
 }
 
+
 class _$MapTestSerializer implements StructuredSerializer<MapTest> {
     @override
     final Iterable<Type> types = const [MapTest, _$MapTest];
@@ -116,6 +113,9 @@ class _$MapTestSerializer implements StructuredSerializer<MapTest> {
     }
 }
 
+
+
+
 class MapTestMapOfEnumStringEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'UPPER')
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 3cc42d89c6b..6785628bf66 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -6,7 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'mixed_properties_and_additional_properties_class.g.dart';
 
 /// MixedPropertiesAndAdditionalPropertiesClass
@@ -15,16 +14,14 @@ part 'mixed_properties_and_additional_properties_class.g.dart';
 /// * [uuid] 
 /// * [dateTime] 
 /// * [map] 
+@BuiltValue()
 abstract class MixedPropertiesAndAdditionalPropertiesClass implements Built<MixedPropertiesAndAdditionalPropertiesClass, MixedPropertiesAndAdditionalPropertiesClassBuilder> {
     @BuiltValueField(wireName: r'uuid')
     String? get uuid;
-
     @BuiltValueField(wireName: r'dateTime')
     DateTime? get dateTime;
-
     @BuiltValueField(wireName: r'map')
     BuiltMap<String, Animal>? get map;
-
     MixedPropertiesAndAdditionalPropertiesClass._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -33,9 +30,10 @@ abstract class MixedPropertiesAndAdditionalPropertiesClass implements Built<Mixe
     factory MixedPropertiesAndAdditionalPropertiesClass([void updates(MixedPropertiesAndAdditionalPropertiesClassBuilder b)]) = _$MixedPropertiesAndAdditionalPropertiesClass;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
+    static Serializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
 }
 
+
 class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements StructuredSerializer<MixedPropertiesAndAdditionalPropertiesClass> {
     @override
     final Iterable<Type> types = const [MixedPropertiesAndAdditionalPropertiesClass, _$MixedPropertiesAndAdditionalPropertiesClass];
@@ -101,3 +99,6 @@ class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements Structu
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 551edc42d15..20e04ac47d9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'model200_response.g.dart';
 
 /// Model for testing model name starting with number
@@ -12,13 +11,12 @@ part 'model200_response.g.dart';
 /// Properties:
 /// * [name] 
 /// * [class_] 
+@BuiltValue()
 abstract class Model200Response implements Built<Model200Response, Model200ResponseBuilder> {
     @BuiltValueField(wireName: r'name')
     int? get name;
-
     @BuiltValueField(wireName: r'class')
     String? get class_;
-
     Model200Response._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -27,9 +25,10 @@ abstract class Model200Response implements Built<Model200Response, Model200Respo
     factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Model200Response> get serializer => _$Model200ResponseSerializer();
+    static Serializer<Model200Response> get serializer => _$Model200ResponseSerializer();
 }
 
+
 class _$Model200ResponseSerializer implements StructuredSerializer<Model200Response> {
     @override
     final Iterable<Type> types = const [Model200Response, _$Model200Response];
@@ -84,3 +83,6 @@ class _$Model200ResponseSerializer implements StructuredSerializer<Model200Respo
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 37788509b7e..2def6aa36bf 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'model_client.g.dart';
 
 /// ModelClient
 ///
 /// Properties:
 /// * [client] 
+@BuiltValue()
 abstract class ModelClient implements Built<ModelClient, ModelClientBuilder> {
     @BuiltValueField(wireName: r'client')
     String? get client;
-
     ModelClient._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class ModelClient implements Built<ModelClient, ModelClientBuilder> {
     factory ModelClient([void updates(ModelClientBuilder b)]) = _$ModelClient;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ModelClient> get serializer => _$ModelClientSerializer();
+    static Serializer<ModelClient> get serializer => _$ModelClientSerializer();
 }
 
+
 class _$ModelClientSerializer implements StructuredSerializer<ModelClient> {
     @override
     final Iterable<Type> types = const [ModelClient, _$ModelClient];
@@ -69,3 +69,6 @@ class _$ModelClientSerializer implements StructuredSerializer<ModelClient> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index 07ad3c89587..13c6fde108e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -4,18 +4,17 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'model_file.g.dart';
 
 /// Must be named `File` for test.
 ///
 /// Properties:
 /// * [sourceURI] - Test capitalization
+@BuiltValue()
 abstract class ModelFile implements Built<ModelFile, ModelFileBuilder> {
     /// Test capitalization
     @BuiltValueField(wireName: r'sourceURI')
     String? get sourceURI;
-
     ModelFile._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -24,9 +23,10 @@ abstract class ModelFile implements Built<ModelFile, ModelFileBuilder> {
     factory ModelFile([void updates(ModelFileBuilder b)]) = _$ModelFile;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ModelFile> get serializer => _$ModelFileSerializer();
+    static Serializer<ModelFile> get serializer => _$ModelFileSerializer();
 }
 
+
 class _$ModelFileSerializer implements StructuredSerializer<ModelFile> {
     @override
     final Iterable<Type> types = const [ModelFile, _$ModelFile];
@@ -70,3 +70,6 @@ class _$ModelFileSerializer implements StructuredSerializer<ModelFile> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index 2194c1b24d7..d7980ac5242 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'model_list.g.dart';
 
 /// ModelList
 ///
 /// Properties:
 /// * [n123list] 
+@BuiltValue()
 abstract class ModelList implements Built<ModelList, ModelListBuilder> {
     @BuiltValueField(wireName: r'123-list')
     String? get n123list;
-
     ModelList._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class ModelList implements Built<ModelList, ModelListBuilder> {
     factory ModelList([void updates(ModelListBuilder b)]) = _$ModelList;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ModelList> get serializer => _$ModelListSerializer();
+    static Serializer<ModelList> get serializer => _$ModelListSerializer();
 }
 
+
 class _$ModelListSerializer implements StructuredSerializer<ModelList> {
     @override
     final Iterable<Type> types = const [ModelList, _$ModelList];
@@ -69,3 +69,6 @@ class _$ModelListSerializer implements StructuredSerializer<ModelList> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index 99fda9e75ea..a84cfdbb15d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'model_return.g.dart';
 
 /// Model for testing reserved words
 ///
 /// Properties:
 /// * [return_] 
+@BuiltValue()
 abstract class ModelReturn implements Built<ModelReturn, ModelReturnBuilder> {
     @BuiltValueField(wireName: r'return')
     int? get return_;
-
     ModelReturn._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class ModelReturn implements Built<ModelReturn, ModelReturnBuilder> {
     factory ModelReturn([void updates(ModelReturnBuilder b)]) = _$ModelReturn;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ModelReturn> get serializer => _$ModelReturnSerializer();
+    static Serializer<ModelReturn> get serializer => _$ModelReturnSerializer();
 }
 
+
 class _$ModelReturnSerializer implements StructuredSerializer<ModelReturn> {
     @override
     final Iterable<Type> types = const [ModelReturn, _$ModelReturn];
@@ -69,3 +69,6 @@ class _$ModelReturnSerializer implements StructuredSerializer<ModelReturn> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index 6eaea760741..1de33c469ee 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'name.g.dart';
 
 /// Model for testing model name same as property name
@@ -14,19 +13,16 @@ part 'name.g.dart';
 /// * [snakeCase] 
 /// * [property] 
 /// * [n123number] 
+@BuiltValue()
 abstract class Name implements Built<Name, NameBuilder> {
     @BuiltValueField(wireName: r'name')
     int get name;
-
     @BuiltValueField(wireName: r'snake_case')
     int? get snakeCase;
-
     @BuiltValueField(wireName: r'property')
     String? get property;
-
     @BuiltValueField(wireName: r'123Number')
     int? get n123number;
-
     Name._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -35,9 +31,10 @@ abstract class Name implements Built<Name, NameBuilder> {
     factory Name([void updates(NameBuilder b)]) = _$Name;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Name> get serializer => _$NameSerializer();
+    static Serializer<Name> get serializer => _$NameSerializer();
 }
 
+
 class _$NameSerializer implements StructuredSerializer<Name> {
     @override
     final Iterable<Type> types = const [Name, _$Name];
@@ -112,3 +109,6 @@ class _$NameSerializer implements StructuredSerializer<Name> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index e94bd94780f..de402230bb3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -7,7 +7,6 @@ import 'package:openapi/src/model/date.dart';
 import 'package:built_value/json_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'nullable_class.g.dart';
 
 /// NullableClass
@@ -25,43 +24,32 @@ part 'nullable_class.g.dart';
 /// * [objectNullableProp] 
 /// * [objectAndItemsNullableProp] 
 /// * [objectItemsNullable] 
+@BuiltValue()
 abstract class NullableClass implements Built<NullableClass, NullableClassBuilder> {
     @BuiltValueField(wireName: r'integer_prop')
     int? get integerProp;
-
     @BuiltValueField(wireName: r'number_prop')
     num? get numberProp;
-
     @BuiltValueField(wireName: r'boolean_prop')
     bool? get booleanProp;
-
     @BuiltValueField(wireName: r'string_prop')
     String? get stringProp;
-
     @BuiltValueField(wireName: r'date_prop')
     Date? get dateProp;
-
     @BuiltValueField(wireName: r'datetime_prop')
     DateTime? get datetimeProp;
-
     @BuiltValueField(wireName: r'array_nullable_prop')
     BuiltList<JsonObject>? get arrayNullableProp;
-
     @BuiltValueField(wireName: r'array_and_items_nullable_prop')
     BuiltList<JsonObject?>? get arrayAndItemsNullableProp;
-
     @BuiltValueField(wireName: r'array_items_nullable')
     BuiltList<JsonObject?>? get arrayItemsNullable;
-
     @BuiltValueField(wireName: r'object_nullable_prop')
     BuiltMap<String, JsonObject>? get objectNullableProp;
-
     @BuiltValueField(wireName: r'object_and_items_nullable_prop')
     BuiltMap<String, JsonObject?>? get objectAndItemsNullableProp;
-
     @BuiltValueField(wireName: r'object_items_nullable')
     BuiltMap<String, JsonObject?>? get objectItemsNullable;
-
     NullableClass._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -70,9 +58,10 @@ abstract class NullableClass implements Built<NullableClass, NullableClassBuilde
     factory NullableClass([void updates(NullableClassBuilder b)]) = _$NullableClass;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<NullableClass> get serializer => _$NullableClassSerializer();
+    static Serializer<NullableClass> get serializer => _$NullableClassSerializer();
 }
 
+
 class _$NullableClassSerializer implements StructuredSerializer<NullableClass> {
     @override
     final Iterable<Type> types = const [NullableClass, _$NullableClass];
@@ -247,3 +236,6 @@ class _$NullableClassSerializer implements StructuredSerializer<NullableClass> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index 4a6d8958bbd..9e979be5d7c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'number_only.g.dart';
 
 /// NumberOnly
 ///
 /// Properties:
 /// * [justNumber] 
+@BuiltValue()
 abstract class NumberOnly implements Built<NumberOnly, NumberOnlyBuilder> {
     @BuiltValueField(wireName: r'JustNumber')
     num? get justNumber;
-
     NumberOnly._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class NumberOnly implements Built<NumberOnly, NumberOnlyBuilder> {
     factory NumberOnly([void updates(NumberOnlyBuilder b)]) = _$NumberOnly;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<NumberOnly> get serializer => _$NumberOnlySerializer();
+    static Serializer<NumberOnly> get serializer => _$NumberOnlySerializer();
 }
 
+
 class _$NumberOnlySerializer implements StructuredSerializer<NumberOnly> {
     @override
     final Iterable<Type> types = const [NumberOnly, _$NumberOnly];
@@ -69,3 +69,6 @@ class _$NumberOnlySerializer implements StructuredSerializer<NumberOnly> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index a665cea077b..d4730140741 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -6,7 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/deprecated_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'object_with_deprecated_fields.g.dart';
 
 /// ObjectWithDeprecatedFields
@@ -16,19 +15,16 @@ part 'object_with_deprecated_fields.g.dart';
 /// * [id] 
 /// * [deprecatedRef] 
 /// * [bars] 
+@BuiltValue()
 abstract class ObjectWithDeprecatedFields implements Built<ObjectWithDeprecatedFields, ObjectWithDeprecatedFieldsBuilder> {
     @BuiltValueField(wireName: r'uuid')
     String? get uuid;
-
     @BuiltValueField(wireName: r'id')
     num? get id;
-
     @BuiltValueField(wireName: r'deprecatedRef')
     DeprecatedObject? get deprecatedRef;
-
     @BuiltValueField(wireName: r'bars')
     BuiltList<String>? get bars;
-
     ObjectWithDeprecatedFields._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -37,9 +33,10 @@ abstract class ObjectWithDeprecatedFields implements Built<ObjectWithDeprecatedF
     factory ObjectWithDeprecatedFields([void updates(ObjectWithDeprecatedFieldsBuilder b)]) = _$ObjectWithDeprecatedFields;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
+    static Serializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
 }
 
+
 class _$ObjectWithDeprecatedFieldsSerializer implements StructuredSerializer<ObjectWithDeprecatedFields> {
     @override
     final Iterable<Type> types = const [ObjectWithDeprecatedFields, _$ObjectWithDeprecatedFields];
@@ -116,3 +113,6 @@ class _$ObjectWithDeprecatedFieldsSerializer implements StructuredSerializer<Obj
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index c0ab791ac1e..023d111ca2d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -5,7 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'order.g.dart';
 
 /// Order
@@ -17,27 +16,22 @@ part 'order.g.dart';
 /// * [shipDate] 
 /// * [status] - Order Status
 /// * [complete] 
+@BuiltValue()
 abstract class Order implements Built<Order, OrderBuilder> {
     @BuiltValueField(wireName: r'id')
     int? get id;
-
     @BuiltValueField(wireName: r'petId')
     int? get petId;
-
     @BuiltValueField(wireName: r'quantity')
     int? get quantity;
-
     @BuiltValueField(wireName: r'shipDate')
     DateTime? get shipDate;
-
     /// Order Status
     @BuiltValueField(wireName: r'status')
     OrderStatusEnum? get status;
     // enum statusEnum {  placed,  approved,  delivered,  };
-
     @BuiltValueField(wireName: r'complete')
     bool? get complete;
-
     Order._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -47,9 +41,10 @@ abstract class Order implements Built<Order, OrderBuilder> {
     factory Order([void updates(OrderBuilder b)]) = _$Order;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Order> get serializer => _$OrderSerializer();
+    static Serializer<Order> get serializer => _$OrderSerializer();
 }
 
+
 class _$OrderSerializer implements StructuredSerializer<Order> {
     @override
     final Iterable<Type> types = const [Order, _$Order];
@@ -148,6 +143,9 @@ class _$OrderSerializer implements StructuredSerializer<Order> {
     }
 }
 
+
+
+
 class OrderStatusEnum extends EnumClass {
 
   /// Order Status
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index 8bed955490a..f47b88b7341 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'outer_composite.g.dart';
 
 /// OuterComposite
@@ -13,16 +12,14 @@ part 'outer_composite.g.dart';
 /// * [myNumber] 
 /// * [myString] 
 /// * [myBoolean] 
+@BuiltValue()
 abstract class OuterComposite implements Built<OuterComposite, OuterCompositeBuilder> {
     @BuiltValueField(wireName: r'my_number')
     num? get myNumber;
-
     @BuiltValueField(wireName: r'my_string')
     String? get myString;
-
     @BuiltValueField(wireName: r'my_boolean')
     bool? get myBoolean;
-
     OuterComposite._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -31,9 +28,10 @@ abstract class OuterComposite implements Built<OuterComposite, OuterCompositeBui
     factory OuterComposite([void updates(OuterCompositeBuilder b)]) = _$OuterComposite;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
+    static Serializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
 }
 
+
 class _$OuterCompositeSerializer implements StructuredSerializer<OuterComposite> {
     @override
     final Iterable<Type> types = const [OuterComposite, _$OuterComposite];
@@ -99,3 +97,6 @@ class _$OuterCompositeSerializer implements StructuredSerializer<OuterComposite>
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index db171e2db1e..e868caea00d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -5,18 +5,17 @@
 import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'outer_object_with_enum_property.g.dart';
 
 /// OuterObjectWithEnumProperty
 ///
 /// Properties:
 /// * [value] 
+@BuiltValue()
 abstract class OuterObjectWithEnumProperty implements Built<OuterObjectWithEnumProperty, OuterObjectWithEnumPropertyBuilder> {
     @BuiltValueField(wireName: r'value')
     OuterEnumInteger get value;
     // enum valueEnum {  0,  1,  2,  };
-
     OuterObjectWithEnumProperty._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -25,9 +24,10 @@ abstract class OuterObjectWithEnumProperty implements Built<OuterObjectWithEnumP
     factory OuterObjectWithEnumProperty([void updates(OuterObjectWithEnumPropertyBuilder b)]) = _$OuterObjectWithEnumProperty;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
+    static Serializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
 }
 
+
 class _$OuterObjectWithEnumPropertySerializer implements StructuredSerializer<OuterObjectWithEnumProperty> {
     @override
     final Iterable<Type> types = const [OuterObjectWithEnumProperty, _$OuterObjectWithEnumProperty];
@@ -69,3 +69,6 @@ class _$OuterObjectWithEnumPropertySerializer implements StructuredSerializer<Ou
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index ed798c12f76..2128e6824e2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -7,7 +7,6 @@ import 'package:openapi/src/model/category.dart';
 import 'package:openapi/src/model/tag.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'pet.g.dart';
 
 /// Pet
@@ -19,27 +18,22 @@ part 'pet.g.dart';
 /// * [photoUrls] 
 /// * [tags] 
 /// * [status] - pet status in the store
+@BuiltValue()
 abstract class Pet implements Built<Pet, PetBuilder> {
     @BuiltValueField(wireName: r'id')
     int? get id;
-
     @BuiltValueField(wireName: r'category')
     Category? get category;
-
     @BuiltValueField(wireName: r'name')
     String get name;
-
     @BuiltValueField(wireName: r'photoUrls')
     BuiltSet<String> get photoUrls;
-
     @BuiltValueField(wireName: r'tags')
     BuiltList<Tag>? get tags;
-
     /// pet status in the store
     @BuiltValueField(wireName: r'status')
     PetStatusEnum? get status;
     // enum statusEnum {  available,  pending,  sold,  };
-
     Pet._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -48,9 +42,10 @@ abstract class Pet implements Built<Pet, PetBuilder> {
     factory Pet([void updates(PetBuilder b)]) = _$Pet;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Pet> get serializer => _$PetSerializer();
+    static Serializer<Pet> get serializer => _$PetSerializer();
 }
 
+
 class _$PetSerializer implements StructuredSerializer<Pet> {
     @override
     final Iterable<Type> types = const [Pet, _$Pet];
@@ -145,6 +140,9 @@ class _$PetSerializer implements StructuredSerializer<Pet> {
     }
 }
 
+
+
+
 class PetStatusEnum extends EnumClass {
 
   /// pet status in the store
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index bbf2bce1cad..cfc2c551015 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'read_only_first.g.dart';
 
 /// ReadOnlyFirst
@@ -12,13 +11,12 @@ part 'read_only_first.g.dart';
 /// Properties:
 /// * [bar] 
 /// * [baz] 
+@BuiltValue()
 abstract class ReadOnlyFirst implements Built<ReadOnlyFirst, ReadOnlyFirstBuilder> {
     @BuiltValueField(wireName: r'bar')
     String? get bar;
-
     @BuiltValueField(wireName: r'baz')
     String? get baz;
-
     ReadOnlyFirst._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -27,9 +25,10 @@ abstract class ReadOnlyFirst implements Built<ReadOnlyFirst, ReadOnlyFirstBuilde
     factory ReadOnlyFirst([void updates(ReadOnlyFirstBuilder b)]) = _$ReadOnlyFirst;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
+    static Serializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
 }
 
+
 class _$ReadOnlyFirstSerializer implements StructuredSerializer<ReadOnlyFirst> {
     @override
     final Iterable<Type> types = const [ReadOnlyFirst, _$ReadOnlyFirst];
@@ -84,3 +83,6 @@ class _$ReadOnlyFirstSerializer implements StructuredSerializer<ReadOnlyFirst> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index f9a7b1dcca4..55815803f9d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -4,17 +4,16 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'special_model_name.g.dart';
 
 /// SpecialModelName
 ///
 /// Properties:
 /// * [dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket] 
+@BuiltValue()
 abstract class SpecialModelName implements Built<SpecialModelName, SpecialModelNameBuilder> {
     @BuiltValueField(wireName: r'$special[property.name]')
     int? get dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket;
-
     SpecialModelName._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -23,9 +22,10 @@ abstract class SpecialModelName implements Built<SpecialModelName, SpecialModelN
     factory SpecialModelName([void updates(SpecialModelNameBuilder b)]) = _$SpecialModelName;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
+    static Serializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
 }
 
+
 class _$SpecialModelNameSerializer implements StructuredSerializer<SpecialModelName> {
     @override
     final Iterable<Type> types = const [SpecialModelName, _$SpecialModelName];
@@ -69,3 +69,6 @@ class _$SpecialModelNameSerializer implements StructuredSerializer<SpecialModelN
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index 1135ca766be..b7e6d58e3d3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'tag.g.dart';
 
 /// Tag
@@ -12,13 +11,12 @@ part 'tag.g.dart';
 /// Properties:
 /// * [id] 
 /// * [name] 
+@BuiltValue()
 abstract class Tag implements Built<Tag, TagBuilder> {
     @BuiltValueField(wireName: r'id')
     int? get id;
-
     @BuiltValueField(wireName: r'name')
     String? get name;
-
     Tag._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -27,9 +25,10 @@ abstract class Tag implements Built<Tag, TagBuilder> {
     factory Tag([void updates(TagBuilder b)]) = _$Tag;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Tag> get serializer => _$TagSerializer();
+    static Serializer<Tag> get serializer => _$TagSerializer();
 }
 
+
 class _$TagSerializer implements StructuredSerializer<Tag> {
     @override
     final Iterable<Type> types = const [Tag, _$Tag];
@@ -84,3 +83,6 @@ class _$TagSerializer implements StructuredSerializer<Tag> {
     }
 }
 
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index b783555f5de..0990c28782e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -4,7 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-
 part 'user.g.dart';
 
 /// User
@@ -18,32 +17,25 @@ part 'user.g.dart';
 /// * [password] 
 /// * [phone] 
 /// * [userStatus] - User Status
+@BuiltValue()
 abstract class User implements Built<User, UserBuilder> {
     @BuiltValueField(wireName: r'id')
     int? get id;
-
     @BuiltValueField(wireName: r'username')
     String? get username;
-
     @BuiltValueField(wireName: r'firstName')
     String? get firstName;
-
     @BuiltValueField(wireName: r'lastName')
     String? get lastName;
-
     @BuiltValueField(wireName: r'email')
     String? get email;
-
     @BuiltValueField(wireName: r'password')
     String? get password;
-
     @BuiltValueField(wireName: r'phone')
     String? get phone;
-
     /// User Status
     @BuiltValueField(wireName: r'userStatus')
     int? get userStatus;
-
     User._();
 
     @BuiltValueHook(initializeBuilder: true)
@@ -52,9 +44,10 @@ abstract class User implements Built<User, UserBuilder> {
     factory User([void updates(UserBuilder b)]) = _$User;
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<User> get serializer => _$UserSerializer();
+    static Serializer<User> get serializer => _$UserSerializer();
 }
 
+
 class _$UserSerializer implements StructuredSerializer<User> {
     @override
     final Iterable<Type> types = const [User, _$User];
@@ -175,3 +168,6 @@ class _$UserSerializer implements StructuredSerializer<User> {
     }
 }
 
+
+
+
-- 
GitLab


From 78dae86f5dbbfa0a666a845c75eb199145446f2a Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 19:46:10 +0200
Subject: [PATCH 06/42] only built value support for now

---
 .../openapitools/codegen/languages/DartDioClientCodegen.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index eab6a15ca3d..b218f3d1557 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -361,7 +361,10 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                     if (children == null) {
                         parentModel.setChildren(children = new ArrayList<>());
                     }
-                    parentModel.imports.add(cm.getClassFilename() + ".dart");
+                    //only built value support for now
+                    if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
+                        parentModel.imports.add(cm.getClassFilename() + ".dart");
+                    }
                     // every model is iterated exactly once, so children will always have unique
                     // items
                     children.add(cm);
-- 
GitLab


From 73ce3bb3b0f6c0e9198cea9e2781d6944095c4e7 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 20:17:44 +0200
Subject: [PATCH 07/42] ignore unused elements

---
 .../dio/serialization/built_value/class.mustache          | 2 ++
 .../dio/serialization/built_value/class_child.mustache    | 8 --------
 .../lib/src/model/additional_properties_class.dart        | 2 ++
 .../lib/src/model/all_of_with_single_ref.dart             | 2 ++
 .../petstore_client_lib_fake/lib/src/model/animal.dart    | 2 ++
 .../lib/src/model/api_response.dart                       | 2 ++
 .../lib/src/model/array_of_array_of_number_only.dart      | 2 ++
 .../lib/src/model/array_of_number_only.dart               | 2 ++
 .../lib/src/model/array_test.dart                         | 2 ++
 .../lib/src/model/capitalization.dart                     | 2 ++
 .../petstore_client_lib_fake/lib/src/model/cat.dart       | 4 ++--
 .../lib/src/model/cat_all_of.dart                         | 2 ++
 .../petstore_client_lib_fake/lib/src/model/category.dart  | 2 ++
 .../lib/src/model/class_model.dart                        | 2 ++
 .../lib/src/model/deprecated_object.dart                  | 2 ++
 .../petstore_client_lib_fake/lib/src/model/dog.dart       | 4 ++--
 .../lib/src/model/dog_all_of.dart                         | 2 ++
 .../lib/src/model/enum_arrays.dart                        | 2 ++
 .../petstore_client_lib_fake/lib/src/model/enum_test.dart | 2 ++
 .../lib/src/model/file_schema_test_class.dart             | 2 ++
 .../petstore_client_lib_fake/lib/src/model/foo.dart       | 2 ++
 .../lib/src/model/format_test.dart                        | 2 ++
 .../lib/src/model/has_only_read_only.dart                 | 2 ++
 .../lib/src/model/health_check_result.dart                | 2 ++
 .../lib/src/model/inline_response_default.dart            | 2 ++
 .../petstore_client_lib_fake/lib/src/model/map_test.dart  | 2 ++
 .../mixed_properties_and_additional_properties_class.dart | 2 ++
 .../lib/src/model/model200_response.dart                  | 2 ++
 .../lib/src/model/model_client.dart                       | 2 ++
 .../lib/src/model/model_file.dart                         | 2 ++
 .../lib/src/model/model_list.dart                         | 2 ++
 .../lib/src/model/model_return.dart                       | 2 ++
 .../petstore_client_lib_fake/lib/src/model/name.dart      | 2 ++
 .../lib/src/model/nullable_class.dart                     | 2 ++
 .../lib/src/model/number_only.dart                        | 2 ++
 .../lib/src/model/object_with_deprecated_fields.dart      | 2 ++
 .../petstore_client_lib_fake/lib/src/model/order.dart     | 2 ++
 .../lib/src/model/outer_composite.dart                    | 2 ++
 .../lib/src/model/outer_object_with_enum_property.dart    | 2 ++
 .../petstore_client_lib_fake/lib/src/model/pet.dart       | 2 ++
 .../lib/src/model/read_only_first.dart                    | 2 ++
 .../lib/src/model/special_model_name.dart                 | 2 ++
 .../petstore_client_lib_fake/lib/src/model/tag.dart       | 2 ++
 .../petstore_client_lib_fake/lib/src/model/user.dart      | 2 ++
 44 files changed, 86 insertions(+), 12 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
index 495f3d232cd..09122d866e4 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
@@ -1,5 +1,7 @@
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 {{#imports}}
 {{/imports}}
 part '{{classFilename}}.g.dart';
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
index e975ecd12eb..ca74ca91b93 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
@@ -1,11 +1,3 @@
-{{!
-    Classes with polymorphism or composition may generate unused imports,
-    these need to be ignored for said classes so that there are no lint errors.
-}}
-{{#parentModel}}
-// ignore_for_file: unused_import
-
-{{/parentModel}}
 /// {{{description}}}{{^description}}{{classname}}{{/description}}
 {{#hasVars}}
 ///
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index aba0978fa3c..3cecf0f9352 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'additional_properties_class.g.dart';
 
 /// AdditionalPropertiesClass
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index 25869796a11..2f054b91bba 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -5,6 +5,8 @@
 import 'package:openapi/src/model/single_ref_type.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'all_of_with_single_ref.g.dart';
 
 /// AllOfWithSingleRef
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index fba0bd22ea0..6b5c072378d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -6,6 +6,8 @@ import 'dog.dart';
 import 'cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'animal.g.dart';
 
 /// Animal
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index ca9fba2b124..89b9dff732a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'api_response.g.dart';
 
 /// ApiResponse
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index 88b9bbfa68f..af2540c8d51 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'array_of_array_of_number_only.g.dart';
 
 /// ArrayOfArrayOfNumberOnly
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index adcf272e190..2286b0db52b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'array_of_number_only.g.dart';
 
 /// ArrayOfNumberOnly
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index 7eeefa0acfb..bcf7af5db50 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/read_only_first.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'array_test.g.dart';
 
 /// ArrayTest
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index bf24a814102..71fa711a797 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'capitalization.g.dart';
 
 /// Capitalization
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index eb10752ddd3..3b337bc8c1d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -6,9 +6,9 @@ import 'package:openapi/src/model/animal.dart';
 import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-part 'cat.g.dart';
+// ignore_for_file: unused_element, unused_import
 
-// ignore_for_file: unused_import
+part 'cat.g.dart';
 
 /// Cat
 ///
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index d8c457be00f..77c26707ed5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -5,6 +5,8 @@
 import 'cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'cat_all_of.g.dart';
 
 /// CatAllOf
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index e11332ecee4..e221a19d923 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'category.g.dart';
 
 /// Category
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index 93d71871a80..3aeb6a79a69 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'class_model.g.dart';
 
 /// Model for testing model with \"_class\" property
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index 37049fdc484..69121ef540a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'deprecated_object.g.dart';
 
 /// DeprecatedObject
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index a8a9397144f..91ccb6a267a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -6,9 +6,9 @@ import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-part 'dog.g.dart';
+// ignore_for_file: unused_element, unused_import
 
-// ignore_for_file: unused_import
+part 'dog.g.dart';
 
 /// Dog
 ///
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index ff119474394..38cca9b454e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -5,6 +5,8 @@
 import 'dog.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'dog_all_of.g.dart';
 
 /// DogAllOf
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index 34c378c8a42..1bcef213911 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'enum_arrays.g.dart';
 
 /// EnumArrays
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index a333ef3e7e1..8e21a910e4a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -9,6 +9,8 @@ import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:openapi/src/model/outer_enum_integer_default_value.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'enum_test.g.dart';
 
 /// EnumTest
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index 24b37173d4f..0405b5e395c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/model_file.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'file_schema_test_class.g.dart';
 
 /// FileSchemaTestClass
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index 082a17cbc85..3dfde6444e9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'foo.g.dart';
 
 /// Foo
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index c989f5ea395..035d81bffd5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -6,6 +6,8 @@ import 'dart:typed_data';
 import 'package:openapi/src/model/date.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'format_test.g.dart';
 
 /// FormatTest
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index 03ab4657c53..d8b8112c4ef 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'has_only_read_only.g.dart';
 
 /// HasOnlyReadOnly
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index cead82f9781..44c01670c4f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'health_check_result.g.dart';
 
 /// Just a string to inform instance is up and running. Make it nullable in hope to get it as pointer in generated model.
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
index 7605170fe55..464ffaef16c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
@@ -5,6 +5,8 @@
 import 'package:openapi/src/model/foo.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'inline_response_default.g.dart';
 
 /// InlineResponseDefault
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index 3d31a2973ea..f2f81060645 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'map_test.g.dart';
 
 /// MapTest
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 6785628bf66..5744f3f24d8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'mixed_properties_and_additional_properties_class.g.dart';
 
 /// MixedPropertiesAndAdditionalPropertiesClass
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 20e04ac47d9..6a211684ede 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'model200_response.g.dart';
 
 /// Model for testing model name starting with number
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 2def6aa36bf..827fa68bb59 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'model_client.g.dart';
 
 /// ModelClient
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index 13c6fde108e..01e9809f269 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'model_file.g.dart';
 
 /// Must be named `File` for test.
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index d7980ac5242..1b3aef1dc9e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'model_list.g.dart';
 
 /// ModelList
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index a84cfdbb15d..d2d9fc793c0 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'model_return.g.dart';
 
 /// Model for testing reserved words
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index 1de33c469ee..1bbd3f0edee 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'name.g.dart';
 
 /// Model for testing model name same as property name
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index de402230bb3..3bb500d878c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -7,6 +7,8 @@ import 'package:openapi/src/model/date.dart';
 import 'package:built_value/json_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'nullable_class.g.dart';
 
 /// NullableClass
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index 9e979be5d7c..1e7b577b4b6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'number_only.g.dart';
 
 /// NumberOnly
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index d4730140741..d39b9e351ce 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/deprecated_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'object_with_deprecated_fields.g.dart';
 
 /// ObjectWithDeprecatedFields
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index 023d111ca2d..89de30de7c8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'order.g.dart';
 
 /// Order
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index f47b88b7341..08c4fa8dd62 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'outer_composite.g.dart';
 
 /// OuterComposite
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index e868caea00d..a8c92f48d4a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -5,6 +5,8 @@
 import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'outer_object_with_enum_property.g.dart';
 
 /// OuterObjectWithEnumProperty
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index 2128e6824e2..30bf3b1ebd5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -7,6 +7,8 @@ import 'package:openapi/src/model/category.dart';
 import 'package:openapi/src/model/tag.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'pet.g.dart';
 
 /// Pet
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index cfc2c551015..cd7e467ab74 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'read_only_first.g.dart';
 
 /// ReadOnlyFirst
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index 55815803f9d..4087bbed585 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'special_model_name.g.dart';
 
 /// SpecialModelName
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index b7e6d58e3d3..802212c6283 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'tag.g.dart';
 
 /// Tag
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index 0990c28782e..d9a045fe0d7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+// ignore_for_file: unused_element, unused_import
+
 part 'user.g.dart';
 
 /// User
-- 
GitLab


From b253bb31ed963668862746e0942065bdad53f71b Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 5 May 2022 20:35:27 +0200
Subject: [PATCH 08/42] fixed tests

---
 .../dio/serialization/built_value/test_instance.mustache     | 2 +-
 .../test/all_of_with_single_ref_test.dart                    | 2 +-
 .../dart-dio/petstore_client_lib_fake/test/animal_test.dart  | 2 +-
 .../petstore_client_lib_fake/test/cat_all_of_test.dart       | 2 +-
 .../petstore_client_lib_fake/test/dog_all_of_test.dart       | 2 +-
 .../dart-dio/petstore_client_lib_fake/test/user_test.dart    | 5 -----
 6 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/test_instance.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/test_instance.mustache
index 4ee29fff3cc..2d92c472df3 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/test_instance.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/test_instance.mustache
@@ -1,2 +1,2 @@
-  final instance = {{{classname}}}Builder();
+  {{#vendorExtensions.x-is-parent}}//{{/vendorExtensions.x-is-parent}}final instance = {{{classname}}}Builder();
   // TODO add properties to the builder and call build()
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/all_of_with_single_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/all_of_with_single_ref_test.dart
index 8fdb1603ce3..64e241a4dce 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/all_of_with_single_ref_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/all_of_with_single_ref_test.dart
@@ -12,7 +12,7 @@ void main() {
       // TODO
     });
 
-    // AllOfWithSingleRefSingleRefType singleRefType
+    // SingleRefType singleRefType
     test('to test the property `singleRefType`', () async {
       // TODO
     });
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/animal_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/animal_test.dart
index 875bb42a106..39b8b59cdf5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/animal_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/animal_test.dart
@@ -3,7 +3,7 @@ import 'package:openapi/openapi.dart';
 
 // tests for Animal
 void main() {
-  final instance = AnimalBuilder();
+  //final instance = AnimalBuilder();
   // TODO add properties to the builder and call build()
 
   group(Animal, () {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/cat_all_of_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/cat_all_of_test.dart
index afdac82ad18..fb7e999bf8d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/cat_all_of_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/cat_all_of_test.dart
@@ -3,7 +3,7 @@ import 'package:openapi/openapi.dart';
 
 // tests for CatAllOf
 void main() {
-  final instance = CatAllOfBuilder();
+  //final instance = CatAllOfBuilder();
   // TODO add properties to the builder and call build()
 
   group(CatAllOf, () {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/dog_all_of_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/dog_all_of_test.dart
index 7b58b3a2755..7b4f4095dc9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/dog_all_of_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/dog_all_of_test.dart
@@ -3,7 +3,7 @@ import 'package:openapi/openapi.dart';
 
 // tests for DogAllOf
 void main() {
-  final instance = DogAllOfBuilder();
+  //final instance = DogAllOfBuilder();
   // TODO add properties to the builder and call build()
 
   group(DogAllOf, () {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/user_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/user_test.dart
index d4555abccc5..1e6a1bc23fa 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/user_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/user_test.dart
@@ -48,10 +48,5 @@ void main() {
       // TODO
     });
 
-    // UserType userType
-    test('to test the property `userType`', () async {
-      // TODO
-    });
-
   });
 }
-- 
GitLab


From b00ee651e895d4bb91997472ee937348efa96904 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Tue, 10 May 2022 10:11:19 +0200
Subject: [PATCH 09/42] new configs to test oneOf

---
 ...t-dio-next-oneof-polymorphism-and-inheritance.yaml | 11 +++++++++++
 bin/configs/dart-dio-next-oneof-primitive.yaml        | 11 +++++++++++
 bin/configs/dart-dio-next-oneof.yaml                  | 11 +++++++++++
 3 files changed, 33 insertions(+)
 create mode 100644 bin/configs/dart-dio-next-oneof-polymorphism-and-inheritance.yaml
 create mode 100644 bin/configs/dart-dio-next-oneof-primitive.yaml
 create mode 100644 bin/configs/dart-dio-next-oneof.yaml

diff --git a/bin/configs/dart-dio-next-oneof-polymorphism-and-inheritance.yaml b/bin/configs/dart-dio-next-oneof-polymorphism-and-inheritance.yaml
new file mode 100644
index 00000000000..d3d5b622bc0
--- /dev/null
+++ b/bin/configs/dart-dio-next-oneof-polymorphism-and-inheritance.yaml
@@ -0,0 +1,11 @@
+generatorName: dart-dio
+outputDir: samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance
+inputSpec: modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml
+templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
+typeMappings:
+  Client: "ModelClient"
+  File: "ModelFile"
+  EnumClass: "ModelEnumClass"
+additionalProperties:
+  hideGenerationTimestamp: "true"
+  enumUnknownDefaultCase: "true"
diff --git a/bin/configs/dart-dio-next-oneof-primitive.yaml b/bin/configs/dart-dio-next-oneof-primitive.yaml
new file mode 100644
index 00000000000..29130b5dc46
--- /dev/null
+++ b/bin/configs/dart-dio-next-oneof-primitive.yaml
@@ -0,0 +1,11 @@
+generatorName: dart-dio
+outputDir: samples/openapi3/client/petstore/dart-dio/oneof_primitive
+inputSpec: modules/openapi-generator/src/test/resources/3_0/oneOf_primitive.yaml
+templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
+typeMappings:
+  Client: "ModelClient"
+  File: "ModelFile"
+  EnumClass: "ModelEnumClass"
+additionalProperties:
+  hideGenerationTimestamp: "true"
+  enumUnknownDefaultCase: "true"
diff --git a/bin/configs/dart-dio-next-oneof.yaml b/bin/configs/dart-dio-next-oneof.yaml
new file mode 100644
index 00000000000..865312cdd49
--- /dev/null
+++ b/bin/configs/dart-dio-next-oneof.yaml
@@ -0,0 +1,11 @@
+generatorName: dart-dio
+outputDir: samples/openapi3/client/petstore/dart-dio/oneof
+inputSpec: modules/openapi-generator/src/test/resources/3_0/oneOf.yaml
+templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
+typeMappings:
+  Client: "ModelClient"
+  File: "ModelFile"
+  EnumClass: "ModelEnumClass"
+additionalProperties:
+  hideGenerationTimestamp: "true"
+  enumUnknownDefaultCase: "true"
-- 
GitLab


From 6da26e4d22d0a88e39b695468f171da2a7395724 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Tue, 10 May 2022 10:12:06 +0200
Subject: [PATCH 10/42] add some helper vendorextensions for oneOf support

---
 .../languages/DartDioClientCodegen.java       | 195 ++++++++++++++----
 1 file changed, 159 insertions(+), 36 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index b218f3d1557..9976e6c53a1 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -20,6 +20,7 @@ import com.google.common.collect.Sets;
 import com.samskivert.mustache.Mustache;
 import com.samskivert.mustache.Template;
 import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.openapitools.codegen.*;
 import org.openapitools.codegen.api.TemplatePathLocator;
@@ -27,6 +28,7 @@ import org.openapitools.codegen.config.GlobalSettings;
 import org.openapitools.codegen.meta.GeneratorMetadata;
 import org.openapitools.codegen.meta.Stability;
 import org.openapitools.codegen.meta.features.ClientModificationFeature;
+import org.openapitools.codegen.meta.features.SchemaSupportFeature;
 import org.openapitools.codegen.model.ModelMap;
 import org.openapitools.codegen.model.ModelsMap;
 import org.openapitools.codegen.model.OperationMap;
@@ -79,6 +81,13 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                 .includeClientModificationFeatures(
                         ClientModificationFeature.Authorizations,
                         ClientModificationFeature.UserAgent
+                ).includeSchemaSupportFeatures(                    
+                    SchemaSupportFeature.Polymorphism,
+                    SchemaSupportFeature.Union,
+                    SchemaSupportFeature.Composite,
+                    SchemaSupportFeature.allOf,
+                    SchemaSupportFeature.oneOf,
+                    SchemaSupportFeature.anyOf
                 )
         );
         generatorMetadata = GeneratorMetadata.newBuilder()
@@ -151,6 +160,9 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             LOGGER.debug("Serialization library not set, using default {}", SERIALIZATION_LIBRARY_DEFAULT);
         }
         setLibrary(additionalProperties.get(CodegenConstants.SERIALIZATION_LIBRARY).toString());
+        if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
+            this.setLegacyDiscriminatorBehavior(false);
+        }
 
         if (!additionalProperties.containsKey(DATE_LIBRARY)) {
             additionalProperties.put(DATE_LIBRARY, DATE_LIBRARY_DEFAULT);
@@ -332,9 +344,24 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
         return objs;
     }
 
-    @Override
-    public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs) {
-        objs = super.postProcessAllModels(objs);
+    /// Gets all ancestors of a given model, and puts it in accumulator
+    protected void _getAncestors(CodegenModel cm, Map<String,CodegenModel> allModels, Set<String> accumulator) {
+       
+        //get direct parents
+        Set<String> directParentNames = cm.allOf;        
+        if (directParentNames != null && !directParentNames.isEmpty()) {
+            for (String directParentName : directParentNames) {
+                if (accumulator.add(directParentName)) {
+                    CodegenModel parent = allModels.get(directParentName);                    
+                    _getAncestors(parent, allModels, accumulator);
+                }
+            }
+        }
+    }
+
+    //adapts codegen models and property to dart rules of inheritance
+    protected void _adaptToDartInheritance(Map<String, ModelsMap> objs) {
+        //get all models
         Map<String, CodegenModel> allModels = new HashMap<>();
         for (ModelsMap modelsEntries : objs.values()) {
             for (ModelMap modelsMap : modelsEntries.getModels()) {
@@ -342,46 +369,142 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                 allModels.put(model.getClassname(), model);
             }
         }
+        
+        //all ancestors
+        Set<String> allAncestorsForAllModelsFlat = new HashSet<>();
+        //maps a model to its ancestors
+        Map<String, Set<String>> allAncestorsForAllModels = new HashMap<>();
+        for (java.util.Map.Entry<String,CodegenModel> cm : allModels.entrySet()) {
+            Set<String> allAncestors = new HashSet<>();
+            //get all ancestors
+            // TODO: optimize this logic ?
+            _getAncestors(cm.getValue(), allModels, allAncestors);
+            //just in case, a model can't be its own ancestor
+            allAncestors.remove(cm.getKey());
+
+            allAncestorsForAllModels.put(cm.getKey(), allAncestors);
+            allAncestorsForAllModelsFlat.addAll(allAncestors);
+        }
 
-        for (CodegenModel cm : allModels.values()) {
-            List<String> interfaces = cm.getInterfaces();
-            if (interfaces != null && !interfaces.isEmpty()) {
-                cm.vendorExtensions.put("x-is-child", true);
-                // has parents, is child
-                List<CodegenModel> parents = new ArrayList<>();
-                Set<String> parentPropNames = new HashSet<>();
-                for (String parentName : interfaces) {
-                    CodegenModel parentModel = allModels.get(parentName);
-                    for (CodegenProperty parentProp : parentModel.getAllVars()) {
-                        parentPropNames.add(parentProp.getName());
-                    }
-                    parents.add(parentModel);
-                    parentModel.vendorExtensions.put("x-is-parent", true);
-                    List<CodegenModel> children = parentModel.getChildren();
-                    if (children == null) {
-                        parentModel.setChildren(children = new ArrayList<>());
-                    }
-                    //only built value support for now
-                    if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
-                        parentModel.imports.add(cm.getClassFilename() + ".dart");
-                    }
-                    // every model is iterated exactly once, so children will always have unique
-                    // items
-                    children.add(cm);
-                }
-                cm.setInterfaceModels(parents);
+        final String kIsChild = "x-is-child";
+        final String kIsParent = "x-is-parent";
+        final String kIsPure = "x-is-pure";
+        final String kSelfOnlyProps = "x-self-only-props";
+        final String kHasSelfOnlyProps = "x-has-self-only-props";
+        final String kAncestorOnlyProps = "x-ancestor-only-props";
+        final String kHasAncestorOnlyProps = "x-has-ancestor-only-props";
+        final String kSelfAndAncestorOnlyProps = "x-self-and-ancestor-only-props";
+        final String kHasSelfAndAncestorOnlyProps = "x-has-self-and-ancestor-only-props";
+
+        Set<String> allPureClasses = new HashSet<>();
+        //set isChild,isParent,isPure
+        for (java.util.Map.Entry<String,CodegenModel> cmEntry : allModels.entrySet()) {
+            String key = cmEntry.getKey();
+            CodegenModel cm = cmEntry.getValue();
+            //get all ancestors
+            Set<String> allAncestors = allAncestorsForAllModels.get(key);
+            
+            //a class is a parent when it's an ancestor to another class
+            boolean isParent = allAncestorsForAllModelsFlat.contains(key);
+            //a class is a child when it has any ancestor
+            boolean isChild = !allAncestors.isEmpty();
+            //a class is pure when it's not a child, and has no oneOf nor anyOf
+            boolean isPure = !isChild && (cm.oneOf == null || cm.oneOf.isEmpty()) && (cm.anyOf == null || cm.anyOf.isEmpty()) ;
+            
+            cm.vendorExtensions.put(kIsChild, isChild);
+            cm.vendorExtensions.put(kIsParent, isParent);
+            cm.vendorExtensions.put(kIsPure, isPure);
+            //when pure:
+            //vars = allVars = selfOnlyProperties = kSelfAndAncestorOnlyProps
+            //ancestorOnlyProps = empty
+            if (isPure) {
+                cm.vendorExtensions.put(kSelfOnlyProps, cm.getVars());
+                cm.vendorExtensions.put(kHasSelfOnlyProps, !cm.getVars().isEmpty());
+                cm.vendorExtensions.put(kAncestorOnlyProps, new ArrayList<CodegenProperty>());
+                cm.vendorExtensions.put(kHasAncestorOnlyProps, false);
+                cm.vendorExtensions.put(kSelfAndAncestorOnlyProps,  cm.getVars());
+                cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps,  !cm.getVars().isEmpty());
+
+                allPureClasses.add(key);
+            }
+        }
 
-                // check for inherited props
-                for (CodegenProperty prop : Stream.concat(cm.getVars().stream(), cm.getAllVars().stream())
-                        .collect(Collectors.toList())) {
-                    if (parentPropNames.contains(prop.getName())) {
-                        prop.isInherited = true;
-                    }
+        //handle impure models
+        for (java.util.Map.Entry<String,CodegenModel> cmEntry : allModels.entrySet()) {
+            String key = cmEntry.getKey();
+            CodegenModel cm = cmEntry.getValue();
+            if (allPureClasses.contains(key)) {
+                continue;
+            }
+            //get all ancestors
+            Set<String> allAncestors = allAncestorsForAllModels.get(key);
+         
+            //get direct parents
+            // Set<String> directParentNames = cm.allOf == null ? new HashSet<>() : cm.allOf;
+            Set<String> compositeProperties = new HashSet<>();
+            
+            Set<String> compositeModelNames = new HashSet<String>() {
+                {
+                    addAll(ObjectUtils.firstNonNull(cm.oneOf, new HashSet<>()));
+                    addAll(ObjectUtils.firstNonNull(cm.anyOf, new HashSet<>()));
+                    addAll(allAncestors);
+                }
+            };
+            for (String compositeModelName : compositeModelNames) {
+                CodegenModel _model =  allModels.get(compositeModelName);
+                if (_model == null) continue;
+                List<CodegenProperty> _allVars = ObjectUtils.firstNonNull(_model.getAllVars(), new ArrayList<>());
+                for (CodegenProperty _prop : _allVars  ) {
+                    compositeProperties.add(_prop.getName());
+                }
+            }
+            //dart classes declare selfOnlyProperties as direct members (they exist in "vars")
+            //for pure models, this will equal vars
+            Map<String, CodegenProperty> selfOnlyProperties = new HashMap<>();
+            
+            //ancestorOnlyProperties are properties defined by all ancestors
+            //NOTE: oneOf,anyOf are NOT considered ancestors
+            //since a child in dart must implment ALL OF the parent (using implements)
+            Map<String, CodegenProperty> ancestorOnlyProperties = new HashMap<>();
+            
+            //combines both selfOnlyProperties and ancestorOnlyProperties 
+            //this will be used by the custom serializer as "x-handled-vars" and "x-has-handled-vars"
+            Map<String, CodegenProperty> selfAndAncestorOnlyProperties = new HashMap<>();
+            
+            //STEP 1: calculating selfOnlyProperties
+            //get all vars of all ancestors and add them to ancestorPropNames
+            // Set<String> _ancestorPropNames = new HashSet<>();
+            for (String ancestorKey : allAncestors) {
+                CodegenModel ancestorCM = allModels.get(ancestorKey);
+                for (CodegenProperty prop : ancestorCM.getVars()) {                    
+                    ancestorOnlyProperties.put(prop.getName(), prop);
+                }
+            }
+            for (CodegenProperty _var : cm.getVars()) {
+                _var.isInherited = ancestorOnlyProperties.containsKey(_var.getName());
+                if (!_var.isInherited && !compositeProperties.contains(_var.getName())) {
+                    selfOnlyProperties.put(_var.getName(), _var);
                 }
             }
+            selfAndAncestorOnlyProperties.putAll(selfOnlyProperties);
+            selfAndAncestorOnlyProperties.putAll(ancestorOnlyProperties);
+
 
+            cm.vendorExtensions.put(kSelfOnlyProps, selfOnlyProperties.values());
+            cm.vendorExtensions.put(kHasSelfOnlyProps, !selfOnlyProperties.isEmpty());
+            cm.vendorExtensions.put(kAncestorOnlyProps, ancestorOnlyProperties.values());
+            cm.vendorExtensions.put(kHasAncestorOnlyProps, !ancestorOnlyProperties.isEmpty());
+            cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, selfAndAncestorOnlyProperties.values());
+            cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps,  !selfAndAncestorOnlyProperties.isEmpty());
         }
+    }
 
+    @Override
+    public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs) {
+        objs = super.postProcessAllModels(objs);
+        if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
+            _adaptToDartInheritance(objs);
+        }
         return objs;
     }
 
-- 
GitLab


From 8b32ed19f0073ec512955e85f7274ae5b1f87339 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Tue, 10 May 2022 10:12:16 +0200
Subject: [PATCH 11/42] update templates

---
 .../dart/libraries/dio/pubspec.mustache       |   2 +
 .../serialization/built_value/class.mustache  |  31 +-
 .../built_value/class_child.mustache          |  35 ---
 .../class_child_serializer.mustache           |  88 ------
 .../built_value/class_concrete.mustache       |  87 +++++
 .../built_value/class_header.mustache         |  10 +
 .../built_value/class_inline_enums.mustache   |  22 ++
 .../built_value/class_members.mustache        |  53 ++++
 .../built_value/class_parent.mustache         |  46 ---
 .../class_parent_serializer.mustache          |  43 ---
 .../built_value/class_serializer.mustache     | 297 ++++++++++++++++++
 .../built_value/serializers.mustache          |   6 +-
 12 files changed, 486 insertions(+), 234 deletions(-)
 delete mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
 delete mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_header.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache
 delete mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache
 delete mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
index 2498c80c74e..fff471afe95 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
@@ -14,6 +14,8 @@ environment:
 dependencies:
   dio: '>=4.0.0 <5.0.0'
 {{#useBuiltValue}}
+  one_of: '>=1.5.0 <2.0.0'
+  one_of_serializer: '>=1.5.0 <2.0.0'
   built_value: '>=8.1.0 <9.0.0'
   built_collection: '>=5.1.0 <6.0.0'
 {{/useBuiltValue}}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
index 09122d866e4..1bc82614054 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
@@ -1,32 +1,21 @@
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 {{#imports}}
 {{/imports}}
 part '{{classFilename}}.g.dart';
 
-{{#vendorExtensions.x-is-parent}}{{>serialization/built_value/class_parent}}{{/vendorExtensions.x-is-parent}}{{^vendorExtensions.x-is-parent}}{{>serialization/built_value/class_child}}{{/vendorExtensions.x-is-parent}}
+{{>serialization/built_value/class_header}} {
+{{>serialization/built_value/class_members}}
+}
 
-{{!
-    Generate an enum for any variables that are declared as inline enums
-    isEnum is only true for inline variables that are enums.
-    If an enum is declared as a definition, isEnum is false and the enum is generated from the
-    enum.mustache template.
-}}
-{{#vars}}
-    {{^isModel}}
-    {{#isEnum}}
-        {{^isContainer}}
+{{>serialization/built_value/class_serializer}}
 
-{{>serialization/built_value/enum_inline}}
-        {{/isContainer}}
-        {{#isContainer}}
-            {{#mostInnerItems}}
+{{#vendorExtensions.x-is-parent}}
+{{>serialization/built_value/class_concrete}}
+{{/vendorExtensions.x-is-parent}}
 
-{{>serialization/built_value/enum_inline}}
-            {{/mostInnerItems}}
-        {{/isContainer}}
-    {{/isEnum}}
-    {{/isModel}}
-{{/vars}}
\ No newline at end of file
+{{>serialization/built_value/class_inline_enums}}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
deleted file mode 100644
index ca74ca91b93..00000000000
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child.mustache
+++ /dev/null
@@ -1,35 +0,0 @@
-/// {{{description}}}{{^description}}{{classname}}{{/description}}
-{{#hasVars}}
-///
-/// Properties:
-{{#allVars}}
-/// * [{{{name}}}] {{#description}}- {{{.}}}{{/description}}
-{{/allVars}}
-{{/hasVars}}
-@BuiltValue()
-abstract class {{classname}} implements {{#interfaces}}{{{.}}}, {{/interfaces}}Built<{{classname}}, {{classname}}Builder> {
-{{#vars}}
-{{^isInherited}}
-    {{#description}}
-    /// {{{.}}}
-    {{/description}}
-    @BuiltValueField(wireName: r'{{baseName}}')
-    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
-    {{#allowableValues}}
-    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
-    {{/allowableValues}}
-{{/isInherited}}
-{{/vars}}
-    {{classname}}._();
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults({{{classname}}}Builder b) => b{{#vars}}{{#defaultValue}}
-        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vars}};
-
-    factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
-}
-
-{{>serialization/built_value/class_child_serializer}}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache
deleted file mode 100644
index 7fbe7807397..00000000000
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_child_serializer.mustache
+++ /dev/null
@@ -1,88 +0,0 @@
-
-{{!
-    Generate a custom serializer in order to support combinations of required and nullable.
-    By default built_value does not serialize null fields.
-}}
-class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> {
-    @override
-    final Iterable<Type> types = const [{{classname}}, _${{classname}}];
-
-    @override
-    final String wireName = r'{{classname}}';
-
-    @override
-    Iterable<Object?> serialize(Serializers serializers, {{{classname}}} object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        {{#vars}}
-        {{#required}}
-        {{!
-            A required property need to always be part of the serialized output.
-            When it is nullable, null is serialized, otherwise it is an error if it is null.
-        }}
-        result
-            ..add(r'{{baseName}}')
-            ..add({{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}},
-                specifiedType: const {{>serialization/built_value/variable_serializer_type}}));
-        {{/required}}
-        {{^required}}
-        if (object.{{{name}}} != null) {
-            {{! Non-required properties are only serialized if not null. }}
-            result
-                ..add(r'{{baseName}}')
-                ..add(serializers.serialize(object.{{{name}}},
-                    specifiedType: const {{>serialization/built_value/variable_serializer_type}}));
-        }
-        {{/required}}
-        {{/vars}}
-        return result;
-    }
-
-    @override
-    {{classname}} deserialize(Serializers serializers, Iterable<Object?> serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = {{classname}}Builder();
-
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
-            switch (key) {
-                {{#vars}}
-                case r'{{baseName}}':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
-                    {{#isNullable}}
-                    if (valueDes == null) continue;
-                    {{/isNullable}}
-                    {{#isContainer}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isContainer}}
-                    {{^isContainer}}
-                    {{#isEnum}}
-                    result.{{{name}}} = valueDes;
-                    {{/isEnum}}
-                    {{^isEnum}}
-                    {{#isModel}}
-                    {{#isPrimitiveType}}
-                    {{! These are models that have been manually marked as primitive via generator param. }}
-                    result.{{{name}}} = valueDes;
-                    {{/isPrimitiveType}}
-                    {{^isPrimitiveType}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isPrimitiveType}}
-                    {{/isModel}}
-                    {{^isModel}}
-                    result.{{{name}}} = valueDes;
-                    {{/isModel}}
-                    {{/isEnum}}
-                    {{/isContainer}}
-                    break;
-                {{/vars}}
-            }
-        }
-        return result.build();
-    }
-}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
new file mode 100644
index 00000000000..0fb6bd12043
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
@@ -0,0 +1,87 @@
+/// a concrete implmentation of [{{classname}}], since [{{classname}}] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class ${{classname}} implements {{classname}}, Built<${{classname}}, ${{classname}}Builder> {
+  ${{classname}}._();
+
+  factory ${{classname}}([void Function(${{classname}}Builder)? updates]) = _$${{classname}};
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(${{classname}}Builder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<${{classname}}> get serializer => _$${{classname}}Serializer();
+}
+
+class _$${{classname}}Serializer implements PrimitiveSerializer<${{classname}}> {
+    @override
+    final Iterable<Type> types = const [${{classname}}, _$${{classname}}];
+
+    @override
+    final String wireName = r'${{classname}}';
+
+
+
+    @override
+    Object serialize(Serializers serializers, ${{{classname}}} object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType({{classname}}))!;
+    }
+
+    {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ${{classname}}Builder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                {{#vendorExtensions.x-self-and-ancestor-only-props}}
+                 case r'{{baseName}}':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
+                    {{#isNullable}}
+                    if (valueDes == null) continue;
+                    {{/isNullable}}
+                    {{#isContainer}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isContainer}}
+                    {{^isContainer}}
+                    {{#isEnum}}
+                    result.{{{name}}} = valueDes;
+                    {{/isEnum}}
+                    {{^isEnum}}
+                    {{#isModel}}
+                    {{#isPrimitiveType}}
+                    {{! These are models that have been manually marked as primitive via generator param. }}
+                    result.{{{name}}} = valueDes;
+                    {{/isPrimitiveType}}
+                    {{^isPrimitiveType}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isPrimitiveType}}
+                    {{/isModel}}
+                    {{^isModel}}
+                    result.{{{name}}} = valueDes;
+                    {{/isModel}}
+                    {{/isEnum}}
+                    {{/isContainer}}
+                    break;
+                {{/vendorExtensions.x-self-and-ancestor-only-props}}
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    @override
+    ${{classname}} deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ${{classname}}Builder();
+        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}        
+        {{! when discriminator is involved, read it, then return based on value }}
+        return result.build();        
+    }
+}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_header.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_header.mustache
new file mode 100644
index 00000000000..e0b80af1dbe
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_header.mustache
@@ -0,0 +1,10 @@
+/// {{{description}}}{{^description}}{{classname}}{{/description}}
+{{#hasVars}}
+///
+/// Properties:
+{{#allVars}}
+/// * [{{{name}}}] {{#description}}- {{{.}}}{{/description}}
+{{/allVars}}
+{{/hasVars}}
+@BuiltValue({{#vendorExtensions.x-is-parent}}instantiable: false{{/vendorExtensions.x-is-parent}})
+abstract class {{classname}} {{^allOf}}{{^vendorExtensions.x-is-parent}}implements {{/vendorExtensions.x-is-parent}}{{/allOf}}{{#allOf}}{{#-first}}implements {{/-first}}{{/allOf}}{{#allOf}}{{{.}}}{{^-last}}, {{/-last}}{{/allOf}}{{^vendorExtensions.x-is-parent}}{{#allOf}}{{#-first}}, {{/-first}}{{/allOf}}{{/vendorExtensions.x-is-parent}}{{^vendorExtensions.x-is-parent}}Built<{{classname}}, {{classname}}Builder>{{/vendorExtensions.x-is-parent}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
new file mode 100644
index 00000000000..1f70cd903d8
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
@@ -0,0 +1,22 @@
+{{!
+    Generate an enum for any variables that are declared as inline enums
+    isEnum is only true for inline variables that are enums.
+    If an enum is declared as a definition, isEnum is false and the enum is generated from the
+    enum.mustache template.
+}}
+{{#vars}}
+    {{^isModel}}
+    {{#isEnum}}
+        {{^isContainer}}
+
+{{>serialization/built_value/enum_inline}}
+        {{/isContainer}}
+        {{#isContainer}}
+            {{#mostInnerItems}}
+
+{{>serialization/built_value/enum_inline}}
+            {{/mostInnerItems}}
+        {{/isContainer}}
+    {{/isEnum}}
+    {{/isModel}}
+{{/vars}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache
new file mode 100644
index 00000000000..d7bcf23622b
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache
@@ -0,0 +1,53 @@
+{{! define variables that aren't inherited from allOf/anyOf/oneOf }}
+{{#vendorExtensions.x-self-only-props}}
+    {{#description}}
+    /// {{{.}}}
+    {{/description}}
+    @BuiltValueField(wireName: r'{{baseName}}')
+    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
+    {{#allowableValues}}
+    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
+    {{/allowableValues}}
+{{/vendorExtensions.x-self-only-props}}
+
+{{#anyOf}}
+{{#-first}}
+    /// Any Of {{#anyOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/anyOf}}
+    AnyOf get anyOf;
+
+{{/-first}}
+{{/anyOf}}
+{{#oneOf}}
+{{#-first}}
+    /// One Of {{#oneOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/oneOf}}
+    OneOf get oneOf;
+
+{{/-first}}
+{{/oneOf}}
+
+{{#discriminator}}
+    static const String discriminatorFieldName = r'{{propertyName}}';
+{{/discriminator}}
+{{#hasDiscriminatorWithNonEmptyMapping}}
+{{#discriminator}}
+    static const Map<String, Type> discriminatorMapping = {
+        {{#mappedModels}}
+        r'{{mappingName}}': {{modelName}},
+        {{/mappedModels}}
+    };
+    
+{{/discriminator}}
+{{/hasDiscriminatorWithNonEmptyMapping}}
+    {{^vendorExtensions.x-is-parent}}
+    {{classname}}._();
+    
+    factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
+    {{/vendorExtensions.x-is-parent}}
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults({{{classname}}}Builder b) => b{{#vendorExtensions.x-self-and-ancestor-only-props}}{{#defaultValue}}
+        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vendorExtensions.x-self-and-ancestor-only-props}};
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
+
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache
deleted file mode 100644
index 184833f741d..00000000000
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent.mustache
+++ /dev/null
@@ -1,46 +0,0 @@
-{{!
-    Classes with polymorphism or composition may generate unused imports,
-    these need to be ignored for said classes so that there are no lint errors.
-}}
-{{#parentModel}}
-// ignore_for_file: unused_import
-
-{{/parentModel}}
-/// {{{description}}}{{^description}}{{classname}}{{/description}}
-{{#hasVars}}
-///
-/// Properties:
-{{#allVars}}
-/// * [{{{name}}}] {{#description}}- {{{.}}}{{/description}}
-{{/allVars}}
-{{/hasVars}}
-@BuiltValue(instantiable: false)
-abstract class {{classname}} {{#interfaces}}implements {{{.}}},{{/interfaces}} {
-{{#vars}}
-    {{#description}}
-    /// {{{.}}}
-    {{/description}}
-    @BuiltValueField(wireName: r'{{baseName}}')
-    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
-    {{#allowableValues}}
-    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
-    {{/allowableValues}}
-
-{{/vars}}
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults({{{classname}}}Builder b) => b{{#vars}}{{#defaultValue}}
-        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vars}};
-
-{{#hasDiscriminatorWithNonEmptyMapping}}
-    @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<{{classname}}> get serializer => _${{classname}}Serializer();
-{{/hasDiscriminatorWithNonEmptyMapping}}
-}
-
-{{!
-    if the class has a discriminator, it can be serialized.
-    otherwise, it's just a normal interface
-}}
-{{#hasDiscriminatorWithNonEmptyMapping}}
-{{>serialization/built_value/class_parent_serializer}}
-{{/hasDiscriminatorWithNonEmptyMapping}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache
deleted file mode 100644
index f233430af63..00000000000
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_parent_serializer.mustache
+++ /dev/null
@@ -1,43 +0,0 @@
-class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> {
-    @override
-    final Iterable<Type> types = const [{{classname}}];
-
-    @override
-    final String wireName = r'{{classname}}';
-
-    @override
-    Iterable<Object?> serialize(Serializers serializers, {{{classname}}} object,
-        {FullType specifiedType = FullType.unspecified}) {
-        {{!
-            delegate serialization to concrete serializer
-        }}
-        {{#discriminator}}
-        {{#mappedModels}}
-        if (object is {{modelName}}) {
-            final _serializer = {{modelName}}.serializer as StructuredSerializer<{{modelName}}>;
-            return _serializer.serialize(serializers, object, specifiedType: FullType({{modelName}}));
-        }
-        {{/mappedModels}}
-        {{/discriminator}}
-
-        throw UnsupportedError('Discriminator not found for type ${object.runtimeType}');
-    }
-
-    @override
-    {{classname}} deserialize(Serializers serializers, Iterable<Object?> serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        {{#discriminator}}
-        final serializedList = serialized.toList();
-        final discIndex = serializedList.indexOf('{{propertyName}}') + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex]).toString();
-        switch (discValue) {
-            {{#mappedModels}}
-            case '{{mappingName}}':
-                final _serializer = {{modelName}}.serializer as StructuredSerializer<{{modelName}}>;
-                return _serializer.deserialize(serializers, serialized, specifiedType: FullType({{modelName}}));
-            {{/mappedModels}}
-        }    
-        throw UnsupportedError('Discriminator not found $discValue');
-        {{/discriminator}}
-    }
-}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
new file mode 100644
index 00000000000..4e496e4da82
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
@@ -0,0 +1,297 @@
+class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
+    @override
+    final Iterable<Type> types = const [{{classname}}{{^vendorExtensions.x-is-parent}}, _${{classname}}{{/vendorExtensions.x-is-parent}}];
+
+    @override
+    final String wireName = r'{{classname}}';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, {{{classname}}} object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        {{#vendorExtensions.x-self-and-ancestor-only-props}}
+        {{#required}}
+        {{!
+            A required property need to always be part of the serialized output.
+            When it is nullable, null is serialized, otherwise it is an error if it is null.
+        }}
+        yield r'{{baseName}}';
+        yield {{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}},
+                specifiedType: const {{>serialization/built_value/variable_serializer_type}});
+        {{/required}}
+        {{^required}}
+        if (object.{{{name}}} != null) {
+            {{! Non-required properties are only serialized if not null. }}
+            yield r'{{baseName}}';
+            yield serializers.serialize(object.{{{name}}},
+                    specifiedType: const {{>serialization/built_value/variable_serializer_type}});
+        }
+        {{/required}}
+        {{/vendorExtensions.x-self-and-ancestor-only-props}}
+    }
+
+    @override
+    Object serialize(Serializers serializers, {{{classname}}} object,
+        {FullType specifiedType = FullType.unspecified}) {
+        {{! oneOf }}
+        {{#oneOf}}
+        {{#-first}}
+        final oneOf = object.oneOf;
+        {{#vendorExtensions.x-self-and-ancestor-only-props}}
+        final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+        result.addAll(serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType)) as Iterable<Object?>);
+        return result;        
+        {{/vendorExtensions.x-self-and-ancestor-only-props}}
+        {{^vendorExtensions.x-self-and-ancestor-only-props}}
+        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+        {{/vendorExtensions.x-self-and-ancestor-only-props}}
+        {{/-first}}
+        {{/oneOf}}
+        {{! anyOf }}
+        {{#anyOf}}
+        {{#-first}}
+        final anyOf = object.anyOf;
+        final result = {{^vendorExtensions.x-has-self-and-ancestor-only-props}}<Object?>[]{{/vendorExtensions.x-has-self-and-ancestor-only-props}}{{#vendorExtensions.x-has-self-and-ancestor-only-props}}_serializeProperties(serializers, object, specifiedType: specifiedType).toList(){{/vendorExtensions.x-has-self-and-ancestor-only-props}};
+        for (var _valueEntry in anyOf.values.entries) {
+            final _typeIndex = _valueEntry.key;
+            final _type = anyOf.types[_typeIndex];
+            final _value = _valueEntry.value;
+            result.addAll(serializers.serialize(_value, specifiedType: FullType(_type)) as Iterable<Object?>);
+        }
+        return result;    
+        {{/-first}}
+        {{/anyOf}}
+        {{^oneOf}}
+        {{^anyOf}}
+        {{#hasDiscriminatorWithNonEmptyMapping}}
+        {{#discriminator}}
+        {{! handle discriminator }}
+        {{#mappedModels}}
+        if (object is {{modelName}}) {
+            return serializers.serialize(object, specifiedType: FullType({{modelName}}))!;
+        }
+        {{/mappedModels}}
+        {{/discriminator}}
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+        {{/anyOf}}
+        {{/oneOf}}
+    }
+
+    {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required {{classname}}Builder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                {{#vendorExtensions.x-self-and-ancestor-only-props}}
+                 case r'{{baseName}}':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
+                    {{#isNullable}}
+                    if (valueDes == null) continue;
+                    {{/isNullable}}
+                    {{#isContainer}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isContainer}}
+                    {{^isContainer}}
+                    {{#isEnum}}
+                    result.{{{name}}} = valueDes;
+                    {{/isEnum}}
+                    {{^isEnum}}
+                    {{#isModel}}
+                    {{#isPrimitiveType}}
+                    {{! These are models that have been manually marked as primitive via generator param. }}
+                    result.{{{name}}} = valueDes;
+                    {{/isPrimitiveType}}
+                    {{^isPrimitiveType}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isPrimitiveType}}
+                    {{/isModel}}
+                    {{^isModel}}
+                    result.{{{name}}} = valueDes;
+                    {{/isModel}}
+                    {{/isEnum}}
+                    {{/isContainer}}
+                    break;
+                {{/vendorExtensions.x-self-and-ancestor-only-props}}
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    
+    @override
+    {{classname}} deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        {{! oneOf }}
+        {{#oneOf}}
+        {{#-first}}
+        final result = {{#vendorExtensions.x-is-parent}}${{/vendorExtensions.x-is-parent}}{{classname}}Builder();
+        Object? oneOfDataSrc;
+        {{#hasDiscriminatorWithNonEmptyMapping}}        
+        {{#discriminator}}        
+        {{! has props, assign them to result, and extract unhandled }}
+        final serializedList = (serialized as Iterable<Object?>).toList();    
+        final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
+        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        {{! only deserialize unhandled props }}
+        oneOfDataSrc = unhandled;
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
+        oneOfDataSrc = serialized;
+        {{! has no probs at all, pass the serialized as is }}
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        final oneOfTypes = [{{#mappedModels}}{{modelName}}, {{/mappedModels}}{{#vendorExtensions.x-is-parent}}${{classname}}{{/vendorExtensions.x-is-parent}}];
+        Object oneOfResult;
+        Type oneOfType;
+        switch (discValue) {
+            {{#mappedModels}}
+            case '{{mappingName}}':                
+                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType({{modelName}})) as {{modelName}};
+                oneOfType = {{modelName}};
+                break;
+            {{/mappedModels}}            
+            default:      
+                {{#vendorExtensions.x-is-parent}}
+                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(${{classname}})) as ${{classname}};            
+                oneOfType = ${{classname}};
+                {{/vendorExtensions.x-is-parent}}                      
+                {{^vendorExtensions.x-is-parent}}
+                throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
+                {{/vendorExtensions.x-is-parent}}                      
+        }    
+        result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
+        {{/discriminator}}
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        {{^hasDiscriminatorWithNonEmptyMapping}}        
+        {{! use the OneOfSerializer when there is no discriminator }}
+        final targetType = const FullType(OneOf, [{{#composedSchemas}}{{#oneOf}}{{>serialization/built_value/variable_serializer_type}}, {{/oneOf}}{{/composedSchemas}}]);
+        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{! has props, assign them to result, and extract unhandled }}
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        {{! only deserialize unhandled props }}
+        oneOfDataSrc = unhandled;        
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
+        {{! has no probs at all, pass the serialized as is }}
+        oneOfDataSrc = serialized;
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        return result.build();
+        {{/-first}}
+        {{/oneOf}}
+        {{! anyOf }}
+        {{#anyOf}}
+        {{#-first}}
+        final result = {{#vendorExtensions.x-is-parent}}${{/vendorExtensions.x-is-parent}}{{classname}}Builder();
+        Object? anyOfDataSrc;
+        {{#hasDiscriminatorWithNonEmptyMapping}}        
+        {{#discriminator}}        
+        {{! has props, assign them to result, and extract unhandled }}
+        final serializedList = (serialized as Iterable<Object?>).toList();    
+        final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
+        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        {{! only deserialize unhandled props }}
+        anyOfDataSrc = unhandled;
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
+        anyOfDataSrc = serialized;
+        {{! has no probs at all, pass the serialized as is }}
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        final anyOfTypes = [{{#mappedModels}}{{modelName}}, {{/mappedModels}}{{#vendorExtensions.x-is-parent}}${{classname}}{{/vendorExtensions.x-is-parent}}];
+        Object anyOfResult;
+        Type anyOfType;
+        switch (discValue) {
+            {{#mappedModels}}
+            case '{{mappingName}}':                
+                anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType({{modelName}})) as {{modelName}};
+                anyOfType = {{modelName}};
+                break;
+            {{/mappedModels}}            
+            default:      
+                {{#vendorExtensions.x-is-parent}}
+                anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType(${{classname}})) as ${{classname}};            
+                anyOfType = ${{classname}};
+                {{/vendorExtensions.x-is-parent}}                      
+                {{^vendorExtensions.x-is-parent}}
+                throw UnsupportedError("Couldn't deserialize anyOf for the discriminator value: ${discValue}");
+                {{/vendorExtensions.x-is-parent}}                      
+        }    
+        result.anyOf = AnyOfDynamic(values: {anyOfTypes.indexOf(anyOfType): anyOfResult}, types: anyOfTypes);
+        {{/discriminator}}
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        {{^hasDiscriminatorWithNonEmptyMapping}}        
+        {{! use the OneOfSerializer when there is no discriminator }}
+        final targetType = const FullType(AnyOf, [{{#composedSchemas}}{{#anyOf}}{{>serialization/built_value/variable_serializer_type}}, {{/anyOf}}{{/composedSchemas}}]);
+        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{! has props, assign them to result, and extract unhandled }}
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        {{! only deserialize unhandled props }}
+        anyOfDataSrc = unhandled;        
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
+        {{! has no probs at all, pass the serialized as is }}
+        anyOfDataSrc = serialized;
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+        result.anyOf = serializers.deserialize(anyOfDataSrc, specifiedType: targetType) as AnyOf;
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        return result.build();
+        {{/-first}}
+        {{/anyOf}}
+        {{! no anyOf nor oneOf, handles allOf trees }}
+        {{^oneOf}}
+        {{^anyOf}}
+        {{#vendorExtensions.x-is-parent}}
+         {{! 
+            parent classes don't have builder
+            so they must delegate to another serializer using 
+            1) discriminator + mapping            
+            2) concrete implmentation ($classname)
+        }}
+        {{#hasDiscriminatorWithNonEmptyMapping}}        
+        {{#discriminator}}        
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+        switch (discValue) {
+            {{#mappedModels}}
+            case '{{mappingName}}':                
+                return serializers.deserialize(serialized, specifiedType: FullType({{modelName}})) as {{modelName}};
+            {{/mappedModels}}            
+            default:            
+                return serializers.deserialize(serialized, specifiedType: FullType(${{classname}})) as ${{classname}};
+        }
+        {{/discriminator}}
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        {{^hasDiscriminatorWithNonEmptyMapping}}  
+        return serializers.deserialize(serialized, specifiedType: FullType(${{classname}})) as ${{classname}};
+        {{/hasDiscriminatorWithNonEmptyMapping}}
+        {{/vendorExtensions.x-is-parent}}
+        {{^vendorExtensions.x-is-parent}}
+        final result = {{classname}}Builder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+        {{! has props, assign them to result, and extract unhandled }}
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}        
+        return result.build();
+        {{/vendorExtensions.x-is-parent}}
+        {{/anyOf}}
+        {{/oneOf}}
+    }
+}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache
index 7ef191808eb..ece2c4d6902 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache
@@ -1,6 +1,8 @@
 {{>header}}
 // ignore_for_file: unused_import
 
+import 'package:one_of_serializer/any_of_serializer.dart';
+import 'package:one_of_serializer/one_of_serializer.dart';
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/json_object.dart';
 import 'package:built_value/serializer.dart';
@@ -17,7 +19,7 @@ import 'package:{{pubName}}/{{sourceFolder}}/offset_date_serializer.dart';{{/use
 part 'serializers.g.dart';
 
 @SerializersFor([{{#models}}{{#model}}
-  {{classname}},{{/model}}{{/models}}
+  {{classname}},{{#vendorExtensions.x-is-parent}}${{classname}},{{/vendorExtensions.x-is-parent}}{{/model}}{{/models}}
 ])
 Serializers serializers = (_$serializers.toBuilder(){{#builtValueSerializers}}
       ..addBuilderFactory(
@@ -30,6 +32,8 @@ Serializers serializers = (_$serializers.toBuilder(){{#builtValueSerializers}}
         () => MapBuilder<String, {{dataType}}>(),
 {{/isMap}}
       ){{/builtValueSerializers}}{{#useDateLibTimeMachine}}
+      ..add(const OneOfSerializer())
+      ..add(const AnyOfSerializer())
       ..add(const OffsetDateSerializer())
       ..add(const OffsetDateTimeSerializer()){{/useDateLibTimeMachine}}{{#useDateLibCore}}
       ..add(const DateSerializer())
-- 
GitLab


From c23c73af2edcc1ae51331c5ddaaa2387d786fe64 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Tue, 10 May 2022 10:12:38 +0200
Subject: [PATCH 12/42] regen samples

---
 .../client/petstore/dart-dio/oneof/.gitignore |  41 +++
 .../dart-dio/oneof/.openapi-generator-ignore  |  23 ++
 .../dart-dio/oneof/.openapi-generator/FILES   |  23 ++
 .../dart-dio/oneof/.openapi-generator/VERSION |   1 +
 .../client/petstore/dart-dio/oneof/README.md  |  84 ++++++
 .../dart-dio/oneof/analysis_options.yaml      |   9 +
 .../petstore/dart-dio/oneof/doc/Apple.md      |  15 +
 .../petstore/dart-dio/oneof/doc/Banana.md     |  15 +
 .../petstore/dart-dio/oneof/doc/DefaultApi.md |  51 ++++
 .../petstore/dart-dio/oneof/doc/Fruit.md      |  17 ++
 .../petstore/dart-dio/oneof/lib/openapi.dart  |  16 ++
 .../petstore/dart-dio/oneof/lib/src/api.dart  |  73 +++++
 .../oneof/lib/src/api/default_api.dart        |  92 ++++++
 .../dart-dio/oneof/lib/src/api_util.dart      |  78 ++++++
 .../oneof/lib/src/auth/api_key_auth.dart      |  30 ++
 .../dart-dio/oneof/lib/src/auth/auth.dart     |  18 ++
 .../oneof/lib/src/auth/basic_auth.dart        |  37 +++
 .../oneof/lib/src/auth/bearer_auth.dart       |  26 ++
 .../dart-dio/oneof/lib/src/auth/oauth.dart    |  26 ++
 .../oneof/lib/src/date_serializer.dart        |  31 +++
 .../dart-dio/oneof/lib/src/model/apple.dart   |  90 ++++++
 .../dart-dio/oneof/lib/src/model/banana.dart  |  90 ++++++
 .../dart-dio/oneof/lib/src/model/date.dart    |  70 +++++
 .../dart-dio/oneof/lib/src/model/fruit.dart   | 104 +++++++
 .../dart-dio/oneof/lib/src/serializers.dart   |  34 +++
 .../petstore/dart-dio/oneof/pubspec.yaml      |  19 ++
 .../dart-dio/oneof/test/apple_test.dart       |  16 ++
 .../dart-dio/oneof/test/banana_test.dart      |  16 ++
 .../dart-dio/oneof/test/default_api_test.dart |  16 ++
 .../dart-dio/oneof/test/fruit_test.dart       |  26 ++
 .../.gitignore                                |  41 +++
 .../.openapi-generator-ignore                 |  23 ++
 .../.openapi-generator/FILES                  |  47 ++++
 .../.openapi-generator/VERSION                |   1 +
 .../README.md                                 |  99 +++++++
 .../analysis_options.yaml                     |   9 +
 .../doc/Addressable.md                        |  16 ++
 .../doc/Bar.md                                |  22 ++
 .../doc/BarApi.md                             |  55 ++++
 .../doc/BarCreate.md                          |  22 ++
 .../doc/BarRef.md                             |  19 ++
 .../doc/BarRefOrValue.md                      |  19 ++
 .../doc/Entity.md                             |  19 ++
 .../doc/EntityRef.md                          |  21 ++
 .../doc/Extensible.md                         |  17 ++
 .../doc/Foo.md                                |  21 ++
 .../doc/FooApi.md                             |  93 +++++++
 .../doc/FooRef.md                             |  20 ++
 .../doc/FooRefOrValue.md                      |  19 ++
 .../doc/FooRefOrValueWithProperties.md        |  19 ++
 .../doc/Pasta.md                              |  20 ++
 .../doc/Pizza.md                              |  20 ++
 .../doc/PizzaSpeziale.md                      |  20 ++
 .../lib/openapi.dart                          |  28 ++
 .../lib/src/api.dart                          |  80 ++++++
 .../lib/src/api/bar_api.dart                  | 114 ++++++++
 .../lib/src/api/foo_api.dart                  | 187 +++++++++++++
 .../lib/src/api_util.dart                     |  78 ++++++
 .../lib/src/auth/api_key_auth.dart            |  30 ++
 .../lib/src/auth/auth.dart                    |  18 ++
 .../lib/src/auth/basic_auth.dart              |  37 +++
 .../lib/src/auth/bearer_auth.dart             |  26 ++
 .../lib/src/auth/oauth.dart                   |  26 ++
 .../lib/src/date_serializer.dart              |  31 +++
 .../lib/src/model/addressable.dart            | 159 +++++++++++
 .../lib/src/model/bar.dart                    | 172 ++++++++++++
 .../lib/src/model/bar_create.dart             | 172 ++++++++++++
 .../lib/src/model/bar_ref.dart                | 152 ++++++++++
 .../lib/src/model/bar_ref_or_value.dart       |  99 +++++++
 .../lib/src/model/date.dart                   |  70 +++++
 .../lib/src/model/entity.dart                 | 253 +++++++++++++++++
 .../lib/src/model/entity_ref.dart             | 263 ++++++++++++++++++
 .../lib/src/model/extensible.dart             | 176 ++++++++++++
 .../lib/src/model/foo.dart                    | 158 +++++++++++
 .../lib/src/model/foo_ref.dart                | 165 +++++++++++
 .../lib/src/model/foo_ref_or_value.dart       |  99 +++++++
 .../lib/src/model/pasta.dart                  | 145 ++++++++++
 .../lib/src/model/pizza.dart                  | 235 ++++++++++++++++
 .../lib/src/model/pizza_speziale.dart         | 155 +++++++++++
 .../lib/src/serializers.dart                  |  60 ++++
 .../pubspec.yaml                              |  19 ++
 .../test/addressable_test.dart                |  23 ++
 .../test/bar_api_test.dart                    |  18 ++
 .../test/bar_create_test.dart                 |  26 ++
 .../test/bar_ref_or_value_test.dart           |  11 +
 .../test/bar_ref_test.dart                    |  11 +
 .../test/bar_test.dart                        |  26 ++
 .../test/entity_ref_test.dart                 |  23 ++
 .../test/entity_test.dart                     |  11 +
 .../test/extensible_test.dart                 |  29 ++
 .../test/foo_api_test.dart                    |  25 ++
 .../test/foo_ref_or_value_test.dart           |  11 +
 ...foo_ref_or_value_with_properties_test.dart |  47 ++++
 .../test/foo_ref_test.dart                    |  16 ++
 .../test/foo_test.dart                        |  21 ++
 .../test/pasta_test.dart                      |  16 ++
 .../test/pizza_speziale_test.dart             |  16 ++
 .../test/pizza_test.dart                      |  16 ++
 .../dart-dio/oneof_primitive/.gitignore       |  41 +++
 .../oneof_primitive/.openapi-generator-ignore |  23 ++
 .../oneof_primitive/.openapi-generator/FILES  |  21 ++
 .../.openapi-generator/VERSION                |   1 +
 .../dart-dio/oneof_primitive/README.md        |  83 ++++++
 .../oneof_primitive/analysis_options.yaml     |   9 +
 .../dart-dio/oneof_primitive/doc/Child.md     |  15 +
 .../oneof_primitive/doc/DefaultApi.md         |  51 ++++
 .../dart-dio/oneof_primitive/doc/Example.md   |  15 +
 .../dart-dio/oneof_primitive/lib/openapi.dart |  15 +
 .../dart-dio/oneof_primitive/lib/src/api.dart |  73 +++++
 .../lib/src/api/default_api.dart              |  92 ++++++
 .../oneof_primitive/lib/src/api_util.dart     |  78 ++++++
 .../lib/src/auth/api_key_auth.dart            |  30 ++
 .../oneof_primitive/lib/src/auth/auth.dart    |  18 ++
 .../lib/src/auth/basic_auth.dart              |  37 +++
 .../lib/src/auth/bearer_auth.dart             |  26 ++
 .../oneof_primitive/lib/src/auth/oauth.dart   |  26 ++
 .../lib/src/date_serializer.dart              |  31 +++
 .../oneof_primitive/lib/src/model/child.dart  |  90 ++++++
 .../oneof_primitive/lib/src/model/date.dart   |  70 +++++
 .../lib/src/model/example.dart                |  71 +++++
 .../oneof_primitive/lib/src/serializers.dart  |  32 +++
 .../dart-dio/oneof_primitive/pubspec.yaml     |  19 ++
 .../oneof_primitive/test/child_test.dart      |  16 ++
 .../test/default_api_test.dart                |  16 ++
 .../oneof_primitive/test/example_test.dart    |  16 ++
 .../model/additional_properties_class.dart    |  67 +++--
 .../lib/src/model/all_of_with_single_ref.dart |  67 +++--
 .../lib/src/model/animal.dart                 | 153 ++++++++--
 .../lib/src/model/api_response.dart           |  76 ++---
 .../model/array_of_array_of_number_only.dart  |  58 ++--
 .../lib/src/model/array_of_number_only.dart   |  58 ++--
 .../lib/src/model/array_test.dart             |  76 ++---
 .../lib/src/model/capitalization.dart         | 103 +++----
 .../lib/src/model/cat.dart                    |  77 ++---
 .../lib/src/model/cat_all_of.dart             | 113 +++++++-
 .../lib/src/model/category.dart               |  67 +++--
 .../lib/src/model/class_model.dart            |  58 ++--
 .../lib/src/model/deprecated_object.dart      |  58 ++--
 .../lib/src/model/dog.dart                    |  77 ++---
 .../lib/src/model/dog_all_of.dart             | 113 +++++++-
 .../lib/src/model/enum_arrays.dart            |  69 +++--
 .../lib/src/model/enum_test.dart              | 123 ++++----
 .../lib/src/model/file_schema_test_class.dart |  67 +++--
 .../lib/src/model/foo.dart                    |  58 ++--
 .../lib/src/model/format_test.dart            | 193 +++++++------
 .../lib/src/model/has_only_read_only.dart     |  67 +++--
 .../lib/src/model/health_check_result.dart    |  58 ++--
 .../src/model/inline_response_default.dart    |  58 ++--
 .../lib/src/model/map_test.dart               |  87 +++---
 ...rties_and_additional_properties_class.dart |  76 ++---
 .../lib/src/model/model200_response.dart      |  67 +++--
 .../lib/src/model/model_client.dart           |  58 ++--
 .../lib/src/model/model_file.dart             |  58 ++--
 .../lib/src/model/model_list.dart             |  58 ++--
 .../lib/src/model/model_return.dart           |  58 ++--
 .../lib/src/model/name.dart                   |  85 +++---
 .../lib/src/model/nullable_class.dart         | 157 ++++++-----
 .../lib/src/model/number_only.dart            |  58 ++--
 .../model/object_with_deprecated_fields.dart  |  85 +++---
 .../lib/src/model/order.dart                  | 105 +++----
 .../lib/src/model/outer_composite.dart        |  76 ++---
 .../outer_object_with_enum_property.dart      |  58 ++--
 .../lib/src/model/pet.dart                    | 105 +++----
 .../lib/src/model/read_only_first.dart        |  67 +++--
 .../lib/src/model/special_model_name.dart     |  58 ++--
 .../lib/src/model/tag.dart                    |  67 +++--
 .../lib/src/model/user.dart                   | 121 ++++----
 .../lib/src/serializers.dart                  |   8 +-
 .../petstore_client_lib_fake/pubspec.yaml     |   2 +
 .../petstore_client_lib_fake_tests/puby.yaml  |   3 +
 170 files changed, 8531 insertions(+), 1317 deletions(-)
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/.gitignore
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator-ignore
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/README.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/analysis_options.yaml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/doc/Apple.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/doc/Banana.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/doc/DefaultApi.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/doc/Fruit.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/openapi.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api/default_api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/api_key_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/basic_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/bearer_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/oauth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/date_serializer.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/date.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/test/apple_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/test/banana_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/test/default_api_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/test/fruit_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.gitignore
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator-ignore
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/FILES
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/README.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/analysis_options.yaml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Addressable.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Bar.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarApi.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarCreate.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRef.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRefOrValue.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Entity.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/EntityRef.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Extensible.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Foo.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooApi.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRef.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValue.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValueWithProperties.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pasta.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pizza.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/PizzaSpeziale.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/openapi.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/bar_api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/foo_api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/api_key_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/basic_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/bearer_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/oauth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/date_serializer.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/date.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/addressable_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_api_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/extensible_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_api_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/.gitignore
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator-ignore
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/README.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/analysis_options.yaml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Child.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/DefaultApi.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Example.md
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/openapi.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api/default_api.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/api_key_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/basic_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/bearer_auth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/oauth.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/date_serializer.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/date.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/child_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/default_api_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/example_test.dart
 create mode 100644 samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/puby.yaml

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.gitignore b/samples/openapi3/client/petstore/dart-dio/oneof/.gitignore
new file mode 100644
index 00000000000..4298cdcbd1a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.gitignore
@@ -0,0 +1,41 @@
+# See https://dart.dev/guides/libraries/private-files
+
+# Files and directories created by pub
+.dart_tool/
+.buildlog
+.packages
+.project
+.pub/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+#  rules if you intend to use dart2js directly
+#  Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+#  differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+
+# Don’t commit files and directories created by other development environments.
+# For example, if your development environment creates any of the following files,
+# consider putting them in a global ignore file:
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Mac
+.DS_Store
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator-ignore b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator-ignore
new file mode 100644
index 00000000000..7484ee590a3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
new file mode 100644
index 00000000000..f1ab7b5540a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
@@ -0,0 +1,23 @@
+.gitignore
+README.md
+analysis_options.yaml
+doc/Apple.md
+doc/Banana.md
+doc/DefaultApi.md
+doc/Fruit.md
+lib/openapi.dart
+lib/src/api.dart
+lib/src/api/default_api.dart
+lib/src/api_util.dart
+lib/src/auth/api_key_auth.dart
+lib/src/auth/auth.dart
+lib/src/auth/basic_auth.dart
+lib/src/auth/bearer_auth.dart
+lib/src/auth/oauth.dart
+lib/src/date_serializer.dart
+lib/src/model/apple.dart
+lib/src/model/banana.dart
+lib/src/model/date.dart
+lib/src/model/fruit.dart
+lib/src/serializers.dart
+pubspec.yaml
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
new file mode 100644
index 00000000000..5f68295fc19
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
@@ -0,0 +1 @@
+6.0.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/README.md b/samples/openapi3/client/petstore/dart-dio/oneof/README.md
new file mode 100644
index 00000000000..53bfd08fec4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/README.md
@@ -0,0 +1,84 @@
+# openapi (EXPERIMENTAL)
+No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 0.0.1
+- Build package: org.openapitools.codegen.languages.DartDioClientCodegen
+
+## Requirements
+
+* Dart 2.12.0 or later OR Flutter 1.26.0 or later
+* Dio 4.0.0+
+
+## Installation & Usage
+
+### pub.dev
+To use the package from [pub.dev](https://pub.dev), please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi: 1.0.0
+```
+
+### Github
+If this Dart package is published to Github, please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi:
+    git:
+      url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+      #ref: main
+```
+
+### Local development
+To use the package from your local drive, please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi:
+    path: /path/to/openapi
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```dart
+import 'package:openapi/openapi.dart';
+
+
+final api = Openapi().getDefaultApi();
+
+try {
+    final response = await api.rootGet();
+    print(response);
+} catch on DioError (e) {
+    print("Exception when calling DefaultApi->rootGet: $e\n");
+}
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+[*DefaultApi*](doc/DefaultApi.md) | [**rootGet**](doc/DefaultApi.md#rootget) | **GET** / | 
+
+
+## Documentation For Models
+
+ - [Apple](doc/Apple.md)
+ - [Banana](doc/Banana.md)
+ - [Fruit](doc/Fruit.md)
+
+
+## Documentation For Authorization
+
+ All endpoints do not require authorization.
+
+
+## Author
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/analysis_options.yaml b/samples/openapi3/client/petstore/dart-dio/oneof/analysis_options.yaml
new file mode 100644
index 00000000000..a611887d3ac
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/analysis_options.yaml
@@ -0,0 +1,9 @@
+analyzer:
+  language:
+    strict-inference: true
+    strict-raw-types: true
+  strong-mode:
+    implicit-dynamic: false
+    implicit-casts: false
+  exclude:
+    - test/*.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/doc/Apple.md b/samples/openapi3/client/petstore/dart-dio/oneof/doc/Apple.md
new file mode 100644
index 00000000000..c7f711b87ce
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/doc/Apple.md
@@ -0,0 +1,15 @@
+# openapi.model.Apple
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**kind** | **String** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/doc/Banana.md b/samples/openapi3/client/petstore/dart-dio/oneof/doc/Banana.md
new file mode 100644
index 00000000000..bef8a58a427
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/doc/Banana.md
@@ -0,0 +1,15 @@
+# openapi.model.Banana
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **num** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/doc/DefaultApi.md b/samples/openapi3/client/petstore/dart-dio/oneof/doc/DefaultApi.md
new file mode 100644
index 00000000000..41c9b6f9411
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/doc/DefaultApi.md
@@ -0,0 +1,51 @@
+# openapi.api.DefaultApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://localhost*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**rootGet**](DefaultApi.md#rootget) | **GET** / | 
+
+
+# **rootGet**
+> Fruit rootGet()
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getDefaultApi();
+
+try {
+    final response = api.rootGet();
+    print(response);
+} catch on DioError (e) {
+    print('Exception when calling DefaultApi->rootGet: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**Fruit**](Fruit.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/doc/Fruit.md b/samples/openapi3/client/petstore/dart-dio/oneof/doc/Fruit.md
new file mode 100644
index 00000000000..5d48cc6e6d3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/doc/Fruit.md
@@ -0,0 +1,17 @@
+# openapi.model.Fruit
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**color** | **String** |  | [optional] 
+**kind** | **String** |  | [optional] 
+**count** | **num** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/openapi.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/openapi.dart
new file mode 100644
index 00000000000..d85a16fc6ad
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/openapi.dart
@@ -0,0 +1,16 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+export 'package:openapi/src/api.dart';
+export 'package:openapi/src/auth/api_key_auth.dart';
+export 'package:openapi/src/auth/basic_auth.dart';
+export 'package:openapi/src/auth/oauth.dart';
+export 'package:openapi/src/serializers.dart';
+export 'package:openapi/src/model/date.dart';
+
+export 'package:openapi/src/api/default_api.dart';
+
+export 'package:openapi/src/model/apple.dart';
+export 'package:openapi/src/model/banana.dart';
+export 'package:openapi/src/model/fruit.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api.dart
new file mode 100644
index 00000000000..ba9424a2d2a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api.dart
@@ -0,0 +1,73 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:built_value/serializer.dart';
+import 'package:openapi/src/serializers.dart';
+import 'package:openapi/src/auth/api_key_auth.dart';
+import 'package:openapi/src/auth/basic_auth.dart';
+import 'package:openapi/src/auth/bearer_auth.dart';
+import 'package:openapi/src/auth/oauth.dart';
+import 'package:openapi/src/api/default_api.dart';
+
+class Openapi {
+  static const String basePath = r'http://localhost';
+
+  final Dio dio;
+  final Serializers serializers;
+
+  Openapi({
+    Dio? dio,
+    Serializers? serializers,
+    String? basePathOverride,
+    List<Interceptor>? interceptors,
+  })  : this.serializers = serializers ?? standardSerializers,
+        this.dio = dio ??
+            Dio(BaseOptions(
+              baseUrl: basePathOverride ?? basePath,
+              connectTimeout: 5000,
+              receiveTimeout: 3000,
+            )) {
+    if (interceptors == null) {
+      this.dio.interceptors.addAll([
+        OAuthInterceptor(),
+        BasicAuthInterceptor(),
+        BearerAuthInterceptor(),
+        ApiKeyAuthInterceptor(),
+      ]);
+    } else {
+      this.dio.interceptors.addAll(interceptors);
+    }
+  }
+
+  void setOAuthToken(String name, String token) {
+    if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens[name] = token;
+    }
+  }
+
+  void setBearerAuth(String name, String token) {
+    if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
+    }
+  }
+
+  void setBasicAuth(String name, String username, String password) {
+    if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
+    }
+  }
+
+  void setApiKey(String name, String apiKey) {
+    if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
+    }
+  }
+
+  /// Get DefaultApi instance, base route and serializer can be overridden by a given but be careful,
+  /// by doing that all interceptors will not be executed
+  DefaultApi getDefaultApi() {
+    return DefaultApi(dio, serializers);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api/default_api.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api/default_api.dart
new file mode 100644
index 00000000000..e98b7ae9cae
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api/default_api.dart
@@ -0,0 +1,92 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:async';
+
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+
+import 'package:openapi/src/model/fruit.dart';
+
+class DefaultApi {
+
+  final Dio _dio;
+
+  final Serializers _serializers;
+
+  const DefaultApi(this._dio, this._serializers);
+
+  /// rootGet
+  /// 
+  ///
+  /// Parameters:
+  /// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
+  /// * [headers] - Can be used to add additional headers to the request
+  /// * [extras] - Can be used to add flags to the request
+  /// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
+  /// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
+  /// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
+  ///
+  /// Returns a [Future] containing a [Response] with a [Fruit] as data
+  /// Throws [DioError] if API call or serialization fails
+  Future<Response<Fruit>> rootGet({ 
+    CancelToken? cancelToken,
+    Map<String, dynamic>? headers,
+    Map<String, dynamic>? extra,
+    ValidateStatus? validateStatus,
+    ProgressCallback? onSendProgress,
+    ProgressCallback? onReceiveProgress,
+  }) async {
+    final _path = r'/';
+    final _options = Options(
+      method: r'GET',
+      headers: <String, dynamic>{
+        ...?headers,
+      },
+      extra: <String, dynamic>{
+        'secure': <Map<String, String>>[],
+        ...?extra,
+      },
+      validateStatus: validateStatus,
+    );
+
+    final _response = await _dio.request<Object>(
+      _path,
+      options: _options,
+      cancelToken: cancelToken,
+      onSendProgress: onSendProgress,
+      onReceiveProgress: onReceiveProgress,
+    );
+
+    Fruit _responseData;
+
+    try {
+      const _responseType = FullType(Fruit);
+      _responseData = _serializers.deserialize(
+        _response.data!,
+        specifiedType: _responseType,
+      ) as Fruit;
+
+    } catch (error, stackTrace) {
+      throw DioError(
+        requestOptions: _response.requestOptions,
+        response: _response,
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    return Response<Fruit>(
+      data: _responseData,
+      headers: _response.headers,
+      isRedirect: _response.isRedirect,
+      requestOptions: _response.requestOptions,
+      redirects: _response.redirects,
+      statusCode: _response.statusCode,
+      statusMessage: _response.statusMessage,
+      extra: _response.extra,
+    );
+  }
+
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart
new file mode 100644
index 00000000000..e301a95d8e3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart
@@ -0,0 +1,78 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:convert';
+import 'dart:typed_data';
+
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+import 'package:dio/src/parameter.dart';
+
+/// Format the given form parameter object into something that Dio can handle.
+/// Returns primitive or String.
+/// Returns List/Map if the value is BuildList/BuiltMap.
+dynamic encodeFormParameter(Serializers serializers, dynamic value, FullType type) {
+  if (value == null) {
+    return '';
+  }
+  if (value is String || value is num || value is bool) {
+    return value;
+  }
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (serialized is String) {
+    return serialized;
+  }
+  if (value is BuiltList || value is BuiltSet || value is BuiltMap) {
+    return serialized;
+  }
+  return json.encode(serialized);
+}
+
+dynamic encodeQueryParameter(
+  Serializers serializers,
+  dynamic value,
+  FullType type,
+) {
+  if (value == null) {
+    return '';
+  }
+  if (value is String || value is num || value is bool) {
+    return value;
+  }
+  if (value is Uint8List) {
+    // Currently not sure how to serialize this
+    return value;
+  }
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (serialized == null) {
+    return '';
+  }
+  if (serialized is String) {
+    return serialized;
+  }
+  return serialized;
+}
+
+ListParam<Object?> encodeCollectionQueryParameter<T>(
+  Serializers serializers,
+  dynamic value,
+  FullType type, {
+  ListFormat format = ListFormat.multi,
+}) {
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (value is BuiltList<T> || value is BuiltSet<T>) {
+    return ListParam(List.of((serialized as Iterable<Object?>).cast()), format);
+  }
+  throw ArgumentError('Invalid value passed to encodeCollectionQueryParameter');
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/api_key_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/api_key_auth.dart
new file mode 100644
index 00000000000..ee16e3f0f92
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/api_key_auth.dart
@@ -0,0 +1,30 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class ApiKeyAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> apiKeys = {};
+
+  @override
+  void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'apiKey');
+    for (final info in authInfo) {
+      final authName = info['name'] as String;
+      final authKeyName = info['keyName'] as String;
+      final authWhere = info['where'] as String;
+      final apiKey = apiKeys[authName];
+      if (apiKey != null) {
+        if (authWhere == 'query') {
+          options.queryParameters[authKeyName] = apiKey;
+        } else {
+          options.headers[authKeyName] = apiKey;
+        }
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/auth.dart
new file mode 100644
index 00000000000..f7ae9bf3f11
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/auth.dart
@@ -0,0 +1,18 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+
+abstract class AuthInterceptor extends Interceptor {
+  /// Get auth information on given route for the given type.
+  /// Can return an empty list if type is not present on auth data or
+  /// if route doesn't need authentication.
+  List<Map<String, String>> getAuthInfo(RequestOptions route, bool Function(Map<String, String> secure) handles) {
+    if (route.extra.containsKey('secure')) {
+      final auth = route.extra['secure'] as List<Map<String, String>>;
+      return auth.where((secure) => handles(secure)).toList();
+    }
+    return [];
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/basic_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/basic_auth.dart
new file mode 100644
index 00000000000..b6e6dce04f9
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/basic_auth.dart
@@ -0,0 +1,37 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:convert';
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class BasicAuthInfo {
+  final String username;
+  final String password;
+
+  const BasicAuthInfo(this.username, this.password);
+}
+
+class BasicAuthInterceptor extends AuthInterceptor {
+  final Map<String, BasicAuthInfo> authInfo = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final metadataAuthInfo = getAuthInfo(options, (secure) => (secure['type'] == 'http' && secure['scheme'] == 'basic') || secure['type'] == 'basic');
+    for (final info in metadataAuthInfo) {
+      final authName = info['name'] as String;
+      final basicAuthInfo = authInfo[authName];
+      if (basicAuthInfo != null) {
+        final basicAuth = 'Basic ${base64Encode(utf8.encode('${basicAuthInfo.username}:${basicAuthInfo.password}'))}';
+        options.headers['Authorization'] = basicAuth;
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/bearer_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/bearer_auth.dart
new file mode 100644
index 00000000000..1d4402b376c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/bearer_auth.dart
@@ -0,0 +1,26 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class BearerAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> tokens = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'http' && secure['scheme'] == 'bearer');
+    for (final info in authInfo) {
+      final token = tokens[info['name']];
+      if (token != null) {
+        options.headers['Authorization'] = 'Bearer ${token}';
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/oauth.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/oauth.dart
new file mode 100644
index 00000000000..337cf762b0c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/auth/oauth.dart
@@ -0,0 +1,26 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class OAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> tokens = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'oauth' || secure['type'] == 'oauth2');
+    for (final info in authInfo) {
+      final token = tokens[info['name']];
+      if (token != null) {
+        options.headers['Authorization'] = 'Bearer ${token}';
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/date_serializer.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/date_serializer.dart
new file mode 100644
index 00000000000..db3c5c437db
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/date_serializer.dart
@@ -0,0 +1,31 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/serializer.dart';
+import 'package:openapi/src/model/date.dart';
+
+class DateSerializer implements PrimitiveSerializer<Date> {
+
+  const DateSerializer();
+
+  @override
+  Iterable<Type> get types => BuiltList.of([Date]);
+
+  @override
+  String get wireName => 'Date';
+
+  @override
+  Date deserialize(Serializers serializers, Object serialized,
+      {FullType specifiedType = FullType.unspecified}) {
+    final parsed = DateTime.parse(serialized as String);
+    return Date(parsed.year, parsed.month, parsed.day);
+  }
+
+  @override
+  Object serialize(Serializers serializers, Date date,
+      {FullType specifiedType = FullType.unspecified}) {
+    return date.toString();
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
new file mode 100644
index 00000000000..adbdf18dc6d
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
@@ -0,0 +1,90 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'apple.g.dart';
+
+/// Apple
+///
+/// Properties:
+/// * [kind] 
+@BuiltValue()
+abstract class Apple implements Built<Apple, AppleBuilder> {
+    @BuiltValueField(wireName: r'kind')
+    String? get kind;
+
+
+    Apple._();
+    
+    factory Apple([void updates(AppleBuilder b)]) = _$Apple;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(AppleBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Apple> get serializer => _$AppleSerializer();
+
+
+}
+
+class _$AppleSerializer implements PrimitiveSerializer<Apple> {
+    @override
+    final Iterable<Type> types = const [Apple, _$Apple];
+
+    @override
+    final String wireName = r'Apple';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Apple object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.kind != null) {
+            yield r'kind';
+            yield serializers.serialize(object.kind,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Apple object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AppleBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'kind':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.kind = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Apple deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = AppleBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
new file mode 100644
index 00000000000..dec241dce66
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
@@ -0,0 +1,90 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'banana.g.dart';
+
+/// Banana
+///
+/// Properties:
+/// * [count] 
+@BuiltValue()
+abstract class Banana implements Built<Banana, BananaBuilder> {
+    @BuiltValueField(wireName: r'count')
+    num? get count;
+
+
+    Banana._();
+    
+    factory Banana([void updates(BananaBuilder b)]) = _$Banana;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(BananaBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Banana> get serializer => _$BananaSerializer();
+
+
+}
+
+class _$BananaSerializer implements PrimitiveSerializer<Banana> {
+    @override
+    final Iterable<Type> types = const [Banana, _$Banana];
+
+    @override
+    final String wireName = r'Banana';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Banana object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.count != null) {
+            yield r'count';
+            yield serializers.serialize(object.count,
+                    specifiedType: const FullType(num));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Banana object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BananaBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'count':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(num)) as num;
+                    result.count = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Banana deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = BananaBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/date.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/date.dart
new file mode 100644
index 00000000000..b21c7f544be
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/date.dart
@@ -0,0 +1,70 @@
+/// A gregorian calendar date generated by
+/// OpenAPI generator to differentiate
+/// between [DateTime] and [Date] formats.
+class Date implements Comparable<Date> {
+  final int year;
+
+  /// January is 1.
+  final int month;
+
+  /// First day is 1.
+  final int day;
+
+  Date(this.year, this.month, this.day);
+
+  /// The current date
+  static Date now({bool utc = false}) {
+    var now = DateTime.now();
+    if (utc) {
+      now = now.toUtc();
+    }
+    return now.toDate();
+  }
+
+  /// Convert to a [DateTime].
+  DateTime toDateTime({bool utc = false}) {
+    if (utc) {
+      return DateTime.utc(year, month, day);
+    } else {
+      return DateTime(year, month, day);
+    }
+  }
+
+  @override
+  int compareTo(Date other) {
+    int d = year.compareTo(other.year);
+    if (d != 0) {
+      return d;
+    }
+    d = month.compareTo(other.month);
+    if (d != 0) {
+      return d;
+    }
+    return day.compareTo(other.day);
+  }
+
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      other is Date &&
+          runtimeType == other.runtimeType &&
+          year == other.year &&
+          month == other.month &&
+          day == other.day;
+
+  @override
+  int get hashCode => year.hashCode ^ month.hashCode ^ day.hashCode;
+
+  @override
+  String toString() {
+    final yyyy = year.toString();
+    final mm = month.toString().padLeft(2, '0');
+    final dd = day.toString().padLeft(2, '0');
+
+    return '$yyyy-$mm-$dd';
+  }
+}
+
+extension DateTimeToDate on DateTime {
+  Date toDate() => Date(year, month, day);
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
new file mode 100644
index 00000000000..2356980d310
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
@@ -0,0 +1,104 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/apple.dart';
+import 'package:openapi/src/model/banana.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'fruit.g.dart';
+
+/// Fruit
+///
+/// Properties:
+/// * [color] 
+/// * [kind] 
+/// * [count] 
+@BuiltValue()
+abstract class Fruit implements Built<Fruit, FruitBuilder> {
+    @BuiltValueField(wireName: r'color')
+    String? get color;
+
+    /// One Of [Apple], [Banana]
+    OneOf get oneOf;
+
+
+    Fruit._();
+    
+    factory Fruit([void updates(FruitBuilder b)]) = _$Fruit;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(FruitBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Fruit> get serializer => _$FruitSerializer();
+
+
+}
+
+class _$FruitSerializer implements PrimitiveSerializer<Fruit> {
+    @override
+    final Iterable<Type> types = const [Fruit, _$Fruit];
+
+    @override
+    final String wireName = r'Fruit';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Fruit object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.color != null) {
+            yield r'color';
+            yield serializers.serialize(object.color,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Fruit object,
+        {FullType specifiedType = FullType.unspecified}) {
+        final oneOf = object.oneOf;
+        final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+        result.addAll(serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType)) as Iterable<Object?>);
+        return result;        
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FruitBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'color':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.color = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Fruit deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FruitBuilder();
+        Object? oneOfDataSrc;
+        final targetType = const FullType(OneOf, [FullType(Apple), FullType(Banana), ]);
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        oneOfDataSrc = unhandled;        
+        result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart
new file mode 100644
index 00000000000..83d4e026d90
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart
@@ -0,0 +1,34 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+// ignore_for_file: unused_import
+
+import 'package:one_of_serializer/any_of_serializer.dart';
+import 'package:one_of_serializer/one_of_serializer.dart';
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/json_object.dart';
+import 'package:built_value/serializer.dart';
+import 'package:built_value/standard_json_plugin.dart';
+import 'package:built_value/iso_8601_date_time_serializer.dart';
+import 'package:openapi/src/date_serializer.dart';
+import 'package:openapi/src/model/date.dart';
+
+import 'package:openapi/src/model/apple.dart';
+import 'package:openapi/src/model/banana.dart';
+import 'package:openapi/src/model/fruit.dart';
+
+part 'serializers.g.dart';
+
+@SerializersFor([
+  Apple,
+  Banana,
+  Fruit,
+])
+Serializers serializers = (_$serializers.toBuilder()
+      ..add(const DateSerializer())
+      ..add(Iso8601DateTimeSerializer()))
+    .build();
+
+Serializers standardSerializers =
+    (serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
new file mode 100644
index 00000000000..7f0fbb9e6bf
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
@@ -0,0 +1,19 @@
+name: openapi
+version: 1.0.0
+description: OpenAPI API client
+homepage: homepage
+
+environment:
+  sdk: '>=2.12.0 <3.0.0'
+
+dependencies:
+  dio: '>=4.0.0 <5.0.0'
+  one_of: '>=1.5.0 <2.0.0'
+  one_of_serializer: '>=1.5.0 <2.0.0'
+  built_value: '>=8.1.0 <9.0.0'
+  built_collection: '>=5.1.0 <6.0.0'
+
+dev_dependencies:
+  built_value_generator: '>=8.1.0 <9.0.0'
+  build_runner: any
+  test: ^1.16.0
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/test/apple_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof/test/apple_test.dart
new file mode 100644
index 00000000000..1d542169550
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/test/apple_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Apple
+void main() {
+  final instance = AppleBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Apple, () {
+    // String kind
+    test('to test the property `kind`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/test/banana_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof/test/banana_test.dart
new file mode 100644
index 00000000000..a883acc0a9e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/test/banana_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Banana
+void main() {
+  final instance = BananaBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Banana, () {
+    // num count
+    test('to test the property `count`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/test/default_api_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof/test/default_api_test.dart
new file mode 100644
index 00000000000..07d256d2e55
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/test/default_api_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+
+/// tests for DefaultApi
+void main() {
+  final instance = Openapi().getDefaultApi();
+
+  group(DefaultApi, () {
+    //Future<Fruit> rootGet() async
+    test('test rootGet', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/test/fruit_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof/test/fruit_test.dart
new file mode 100644
index 00000000000..c18790ae956
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/test/fruit_test.dart
@@ -0,0 +1,26 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Fruit
+void main() {
+  final instance = FruitBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Fruit, () {
+    // String color
+    test('to test the property `color`', () async {
+      // TODO
+    });
+
+    // String kind
+    test('to test the property `kind`', () async {
+      // TODO
+    });
+
+    // num count
+    test('to test the property `count`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.gitignore b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.gitignore
new file mode 100644
index 00000000000..4298cdcbd1a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.gitignore
@@ -0,0 +1,41 @@
+# See https://dart.dev/guides/libraries/private-files
+
+# Files and directories created by pub
+.dart_tool/
+.buildlog
+.packages
+.project
+.pub/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+#  rules if you intend to use dart2js directly
+#  Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+#  differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+
+# Don’t commit files and directories created by other development environments.
+# For example, if your development environment creates any of the following files,
+# consider putting them in a global ignore file:
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Mac
+.DS_Store
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator-ignore b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator-ignore
new file mode 100644
index 00000000000..7484ee590a3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/FILES
new file mode 100644
index 00000000000..52a900a1962
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/FILES
@@ -0,0 +1,47 @@
+.gitignore
+README.md
+analysis_options.yaml
+doc/Addressable.md
+doc/Bar.md
+doc/BarApi.md
+doc/BarCreate.md
+doc/BarRef.md
+doc/BarRefOrValue.md
+doc/Entity.md
+doc/EntityRef.md
+doc/Extensible.md
+doc/Foo.md
+doc/FooApi.md
+doc/FooRef.md
+doc/FooRefOrValue.md
+doc/Pasta.md
+doc/Pizza.md
+doc/PizzaSpeziale.md
+lib/openapi.dart
+lib/src/api.dart
+lib/src/api/bar_api.dart
+lib/src/api/foo_api.dart
+lib/src/api_util.dart
+lib/src/auth/api_key_auth.dart
+lib/src/auth/auth.dart
+lib/src/auth/basic_auth.dart
+lib/src/auth/bearer_auth.dart
+lib/src/auth/oauth.dart
+lib/src/date_serializer.dart
+lib/src/model/addressable.dart
+lib/src/model/bar.dart
+lib/src/model/bar_create.dart
+lib/src/model/bar_ref.dart
+lib/src/model/bar_ref_or_value.dart
+lib/src/model/date.dart
+lib/src/model/entity.dart
+lib/src/model/entity_ref.dart
+lib/src/model/extensible.dart
+lib/src/model/foo.dart
+lib/src/model/foo_ref.dart
+lib/src/model/foo_ref_or_value.dart
+lib/src/model/pasta.dart
+lib/src/model/pizza.dart
+lib/src/model/pizza_speziale.dart
+lib/src/serializers.dart
+pubspec.yaml
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
new file mode 100644
index 00000000000..5f68295fc19
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
@@ -0,0 +1 @@
+6.0.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/README.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/README.md
new file mode 100644
index 00000000000..6a3fea771a1
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/README.md
@@ -0,0 +1,99 @@
+# openapi (EXPERIMENTAL)
+This tests for a oneOf interface representation
+
+
+This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 0.0.1
+- Build package: org.openapitools.codegen.languages.DartDioClientCodegen
+
+## Requirements
+
+* Dart 2.12.0 or later OR Flutter 1.26.0 or later
+* Dio 4.0.0+
+
+## Installation & Usage
+
+### pub.dev
+To use the package from [pub.dev](https://pub.dev), please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi: 1.0.0
+```
+
+### Github
+If this Dart package is published to Github, please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi:
+    git:
+      url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+      #ref: main
+```
+
+### Local development
+To use the package from your local drive, please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi:
+    path: /path/to/openapi
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```dart
+import 'package:openapi/openapi.dart';
+
+
+final api = Openapi().getBarApi();
+final BarCreate barCreate = ; // BarCreate | 
+
+try {
+    final response = await api.createBar(barCreate);
+    print(response);
+} catch on DioError (e) {
+    print("Exception when calling BarApi->createBar: $e\n");
+}
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost:8080*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+[*BarApi*](doc/BarApi.md) | [**createBar**](doc/BarApi.md#createbar) | **POST** /bar | Create a Bar
+[*FooApi*](doc/FooApi.md) | [**createFoo**](doc/FooApi.md#createfoo) | **POST** /foo | Create a Foo
+[*FooApi*](doc/FooApi.md) | [**getAllFoos**](doc/FooApi.md#getallfoos) | **GET** /foo | GET all Foos
+
+
+## Documentation For Models
+
+ - [Addressable](doc/Addressable.md)
+ - [Bar](doc/Bar.md)
+ - [BarCreate](doc/BarCreate.md)
+ - [BarRef](doc/BarRef.md)
+ - [BarRefOrValue](doc/BarRefOrValue.md)
+ - [Entity](doc/Entity.md)
+ - [EntityRef](doc/EntityRef.md)
+ - [Extensible](doc/Extensible.md)
+ - [Foo](doc/Foo.md)
+ - [FooRef](doc/FooRef.md)
+ - [FooRefOrValue](doc/FooRefOrValue.md)
+ - [Pasta](doc/Pasta.md)
+ - [Pizza](doc/Pizza.md)
+ - [PizzaSpeziale](doc/PizzaSpeziale.md)
+
+
+## Documentation For Authorization
+
+ All endpoints do not require authorization.
+
+
+## Author
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/analysis_options.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/analysis_options.yaml
new file mode 100644
index 00000000000..a611887d3ac
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/analysis_options.yaml
@@ -0,0 +1,9 @@
+analyzer:
+  language:
+    strict-inference: true
+    strict-raw-types: true
+  strong-mode:
+    implicit-dynamic: false
+    implicit-casts: false
+  exclude:
+    - test/*.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Addressable.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Addressable.md
new file mode 100644
index 00000000000..0fcd81b8038
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Addressable.md
@@ -0,0 +1,16 @@
+# openapi.model.Addressable
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Bar.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Bar.md
new file mode 100644
index 00000000000..4cccc863a48
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Bar.md
@@ -0,0 +1,22 @@
+# openapi.model.Bar
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **String** |  | 
+**barPropA** | **String** |  | [optional] 
+**fooPropB** | **String** |  | [optional] 
+**foo** | [**FooRefOrValue**](FooRefOrValue.md) |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarApi.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarApi.md
new file mode 100644
index 00000000000..3ef168ecf34
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarApi.md
@@ -0,0 +1,55 @@
+# openapi.api.BarApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**createBar**](BarApi.md#createbar) | **POST** /bar | Create a Bar
+
+
+# **createBar**
+> Bar createBar(barCreate)
+
+Create a Bar
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getBarApi();
+final BarCreate barCreate = ; // BarCreate | 
+
+try {
+    final response = api.createBar(barCreate);
+    print(response);
+} catch on DioError (e) {
+    print('Exception when calling BarApi->createBar: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **barCreate** | [**BarCreate**](BarCreate.md)|  | 
+
+### Return type
+
+[**Bar**](Bar.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarCreate.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarCreate.md
new file mode 100644
index 00000000000..c0b4ba6edc9
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarCreate.md
@@ -0,0 +1,22 @@
+# openapi.model.BarCreate
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**barPropA** | **String** |  | [optional] 
+**fooPropB** | **String** |  | [optional] 
+**foo** | [**FooRefOrValue**](FooRefOrValue.md) |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRef.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRef.md
new file mode 100644
index 00000000000..949695f4d36
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRef.md
@@ -0,0 +1,19 @@
+# openapi.model.BarRef
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRefOrValue.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRefOrValue.md
new file mode 100644
index 00000000000..9dafa2d6b22
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/BarRefOrValue.md
@@ -0,0 +1,19 @@
+# openapi.model.BarRefOrValue
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Entity.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Entity.md
new file mode 100644
index 00000000000..5ba2144b44f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Entity.md
@@ -0,0 +1,19 @@
+# openapi.model.Entity
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/EntityRef.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/EntityRef.md
new file mode 100644
index 00000000000..80eae55f414
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/EntityRef.md
@@ -0,0 +1,21 @@
+# openapi.model.EntityRef
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | Name of the related entity. | [optional] 
+**atReferredType** | **String** | The actual type of the target instance when needed for disambiguation. | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Extensible.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Extensible.md
new file mode 100644
index 00000000000..7a781e578ea
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Extensible.md
@@ -0,0 +1,17 @@
+# openapi.model.Extensible
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Foo.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Foo.md
new file mode 100644
index 00000000000..2627691fefe
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Foo.md
@@ -0,0 +1,21 @@
+# openapi.model.Foo
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**fooPropA** | **String** |  | [optional] 
+**fooPropB** | **String** |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooApi.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooApi.md
new file mode 100644
index 00000000000..9e8990ebb8b
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooApi.md
@@ -0,0 +1,93 @@
+# openapi.api.FooApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**createFoo**](FooApi.md#createfoo) | **POST** /foo | Create a Foo
+[**getAllFoos**](FooApi.md#getallfoos) | **GET** /foo | GET all Foos
+
+
+# **createFoo**
+> FooRefOrValue createFoo(foo)
+
+Create a Foo
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFooApi();
+final Foo foo = ; // Foo | The Foo to be created
+
+try {
+    final response = api.createFoo(foo);
+    print(response);
+} catch on DioError (e) {
+    print('Exception when calling FooApi->createFoo: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **foo** | [**Foo**](Foo.md)| The Foo to be created | [optional] 
+
+### Return type
+
+[**FooRefOrValue**](FooRefOrValue.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json;charset=utf-8
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **getAllFoos**
+> BuiltList<FooRefOrValue> getAllFoos()
+
+GET all Foos
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFooApi();
+
+try {
+    final response = api.getAllFoos();
+    print(response);
+} catch on DioError (e) {
+    print('Exception when calling FooApi->getAllFoos: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**BuiltList&lt;FooRefOrValue&gt;**](FooRefOrValue.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json;charset=utf-8
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRef.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRef.md
new file mode 100644
index 00000000000..68104b22729
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRef.md
@@ -0,0 +1,20 @@
+# openapi.model.FooRef
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**foorefPropA** | **String** |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValue.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValue.md
new file mode 100644
index 00000000000..35e9fd114e1
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValue.md
@@ -0,0 +1,19 @@
+# openapi.model.FooRefOrValue
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValueWithProperties.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValueWithProperties.md
new file mode 100644
index 00000000000..05aa2b0bbc1
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/FooRefOrValueWithProperties.md
@@ -0,0 +1,19 @@
+# openapi.model.FooRefOrValueWithProperties
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pasta.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pasta.md
new file mode 100644
index 00000000000..034ff420d32
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pasta.md
@@ -0,0 +1,20 @@
+# openapi.model.Pasta
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**vendor** | **String** |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pizza.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pizza.md
new file mode 100644
index 00000000000..e4b040a6a79
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/Pizza.md
@@ -0,0 +1,20 @@
+# openapi.model.Pizza
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pizzaSize** | **num** |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/PizzaSpeziale.md b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/PizzaSpeziale.md
new file mode 100644
index 00000000000..e1d8434c077
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/doc/PizzaSpeziale.md
@@ -0,0 +1,20 @@
+# openapi.model.PizzaSpeziale
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**toppings** | **String** |  | [optional] 
+**href** | **String** | Hyperlink reference | [optional] 
+**id** | **String** | unique identifier | [optional] 
+**atSchemaLocation** | **String** | A URI to a JSON-Schema file that defines additional attributes and relationships | [optional] 
+**atBaseType** | **String** | When sub-classing, this defines the super-class | [optional] 
+**atType** | **String** | When sub-classing, this defines the sub-class Extensible name | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/openapi.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/openapi.dart
new file mode 100644
index 00000000000..ea87a7cb476
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/openapi.dart
@@ -0,0 +1,28 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+export 'package:openapi/src/api.dart';
+export 'package:openapi/src/auth/api_key_auth.dart';
+export 'package:openapi/src/auth/basic_auth.dart';
+export 'package:openapi/src/auth/oauth.dart';
+export 'package:openapi/src/serializers.dart';
+export 'package:openapi/src/model/date.dart';
+
+export 'package:openapi/src/api/bar_api.dart';
+export 'package:openapi/src/api/foo_api.dart';
+
+export 'package:openapi/src/model/addressable.dart';
+export 'package:openapi/src/model/bar.dart';
+export 'package:openapi/src/model/bar_create.dart';
+export 'package:openapi/src/model/bar_ref.dart';
+export 'package:openapi/src/model/bar_ref_or_value.dart';
+export 'package:openapi/src/model/entity.dart';
+export 'package:openapi/src/model/entity_ref.dart';
+export 'package:openapi/src/model/extensible.dart';
+export 'package:openapi/src/model/foo.dart';
+export 'package:openapi/src/model/foo_ref.dart';
+export 'package:openapi/src/model/foo_ref_or_value.dart';
+export 'package:openapi/src/model/pasta.dart';
+export 'package:openapi/src/model/pizza.dart';
+export 'package:openapi/src/model/pizza_speziale.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api.dart
new file mode 100644
index 00000000000..0bb368eace0
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api.dart
@@ -0,0 +1,80 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:built_value/serializer.dart';
+import 'package:openapi/src/serializers.dart';
+import 'package:openapi/src/auth/api_key_auth.dart';
+import 'package:openapi/src/auth/basic_auth.dart';
+import 'package:openapi/src/auth/bearer_auth.dart';
+import 'package:openapi/src/auth/oauth.dart';
+import 'package:openapi/src/api/bar_api.dart';
+import 'package:openapi/src/api/foo_api.dart';
+
+class Openapi {
+  static const String basePath = r'http://localhost:8080';
+
+  final Dio dio;
+  final Serializers serializers;
+
+  Openapi({
+    Dio? dio,
+    Serializers? serializers,
+    String? basePathOverride,
+    List<Interceptor>? interceptors,
+  })  : this.serializers = serializers ?? standardSerializers,
+        this.dio = dio ??
+            Dio(BaseOptions(
+              baseUrl: basePathOverride ?? basePath,
+              connectTimeout: 5000,
+              receiveTimeout: 3000,
+            )) {
+    if (interceptors == null) {
+      this.dio.interceptors.addAll([
+        OAuthInterceptor(),
+        BasicAuthInterceptor(),
+        BearerAuthInterceptor(),
+        ApiKeyAuthInterceptor(),
+      ]);
+    } else {
+      this.dio.interceptors.addAll(interceptors);
+    }
+  }
+
+  void setOAuthToken(String name, String token) {
+    if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens[name] = token;
+    }
+  }
+
+  void setBearerAuth(String name, String token) {
+    if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
+    }
+  }
+
+  void setBasicAuth(String name, String username, String password) {
+    if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
+    }
+  }
+
+  void setApiKey(String name, String apiKey) {
+    if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
+    }
+  }
+
+  /// Get BarApi instance, base route and serializer can be overridden by a given but be careful,
+  /// by doing that all interceptors will not be executed
+  BarApi getBarApi() {
+    return BarApi(dio, serializers);
+  }
+
+  /// Get FooApi instance, base route and serializer can be overridden by a given but be careful,
+  /// by doing that all interceptors will not be executed
+  FooApi getFooApi() {
+    return FooApi(dio, serializers);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/bar_api.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/bar_api.dart
new file mode 100644
index 00000000000..4afe604a557
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/bar_api.dart
@@ -0,0 +1,114 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:async';
+
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+
+import 'package:openapi/src/model/bar.dart';
+import 'package:openapi/src/model/bar_create.dart';
+
+class BarApi {
+
+  final Dio _dio;
+
+  final Serializers _serializers;
+
+  const BarApi(this._dio, this._serializers);
+
+  /// Create a Bar
+  /// 
+  ///
+  /// Parameters:
+  /// * [barCreate] 
+  /// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
+  /// * [headers] - Can be used to add additional headers to the request
+  /// * [extras] - Can be used to add flags to the request
+  /// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
+  /// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
+  /// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
+  ///
+  /// Returns a [Future] containing a [Response] with a [Bar] as data
+  /// Throws [DioError] if API call or serialization fails
+  Future<Response<Bar>> createBar({ 
+    required BarCreate barCreate,
+    CancelToken? cancelToken,
+    Map<String, dynamic>? headers,
+    Map<String, dynamic>? extra,
+    ValidateStatus? validateStatus,
+    ProgressCallback? onSendProgress,
+    ProgressCallback? onReceiveProgress,
+  }) async {
+    final _path = r'/bar';
+    final _options = Options(
+      method: r'POST',
+      headers: <String, dynamic>{
+        ...?headers,
+      },
+      extra: <String, dynamic>{
+        'secure': <Map<String, String>>[],
+        ...?extra,
+      },
+      contentType: 'application/json',
+      validateStatus: validateStatus,
+    );
+
+    dynamic _bodyData;
+
+    try {
+      const _type = FullType(BarCreate);
+      _bodyData = _serializers.serialize(barCreate, specifiedType: _type);
+
+    } catch(error, stackTrace) {
+      throw DioError(
+         requestOptions: _options.compose(
+          _dio.options,
+          _path,
+        ),
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    final _response = await _dio.request<Object>(
+      _path,
+      data: _bodyData,
+      options: _options,
+      cancelToken: cancelToken,
+      onSendProgress: onSendProgress,
+      onReceiveProgress: onReceiveProgress,
+    );
+
+    Bar _responseData;
+
+    try {
+      const _responseType = FullType(Bar);
+      _responseData = _serializers.deserialize(
+        _response.data!,
+        specifiedType: _responseType,
+      ) as Bar;
+
+    } catch (error, stackTrace) {
+      throw DioError(
+        requestOptions: _response.requestOptions,
+        response: _response,
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    return Response<Bar>(
+      data: _responseData,
+      headers: _response.headers,
+      isRedirect: _response.isRedirect,
+      requestOptions: _response.requestOptions,
+      redirects: _response.redirects,
+      statusCode: _response.statusCode,
+      statusMessage: _response.statusMessage,
+      extra: _response.extra,
+    );
+  }
+
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/foo_api.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/foo_api.dart
new file mode 100644
index 00000000000..232392c76a7
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api/foo_api.dart
@@ -0,0 +1,187 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:async';
+
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+
+import 'package:built_collection/built_collection.dart';
+import 'package:openapi/src/model/foo.dart';
+import 'package:openapi/src/model/foo_ref_or_value.dart';
+
+class FooApi {
+
+  final Dio _dio;
+
+  final Serializers _serializers;
+
+  const FooApi(this._dio, this._serializers);
+
+  /// Create a Foo
+  /// 
+  ///
+  /// Parameters:
+  /// * [foo] - The Foo to be created
+  /// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
+  /// * [headers] - Can be used to add additional headers to the request
+  /// * [extras] - Can be used to add flags to the request
+  /// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
+  /// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
+  /// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
+  ///
+  /// Returns a [Future] containing a [Response] with a [FooRefOrValue] as data
+  /// Throws [DioError] if API call or serialization fails
+  Future<Response<FooRefOrValue>> createFoo({ 
+    Foo? foo,
+    CancelToken? cancelToken,
+    Map<String, dynamic>? headers,
+    Map<String, dynamic>? extra,
+    ValidateStatus? validateStatus,
+    ProgressCallback? onSendProgress,
+    ProgressCallback? onReceiveProgress,
+  }) async {
+    final _path = r'/foo';
+    final _options = Options(
+      method: r'POST',
+      headers: <String, dynamic>{
+        ...?headers,
+      },
+      extra: <String, dynamic>{
+        'secure': <Map<String, String>>[],
+        ...?extra,
+      },
+      contentType: 'application/json;charset=utf-8',
+      validateStatus: validateStatus,
+    );
+
+    dynamic _bodyData;
+
+    try {
+      const _type = FullType(Foo);
+      _bodyData = foo == null ? null : _serializers.serialize(foo, specifiedType: _type);
+
+    } catch(error, stackTrace) {
+      throw DioError(
+         requestOptions: _options.compose(
+          _dio.options,
+          _path,
+        ),
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    final _response = await _dio.request<Object>(
+      _path,
+      data: _bodyData,
+      options: _options,
+      cancelToken: cancelToken,
+      onSendProgress: onSendProgress,
+      onReceiveProgress: onReceiveProgress,
+    );
+
+    FooRefOrValue _responseData;
+
+    try {
+      const _responseType = FullType(FooRefOrValue);
+      _responseData = _serializers.deserialize(
+        _response.data!,
+        specifiedType: _responseType,
+      ) as FooRefOrValue;
+
+    } catch (error, stackTrace) {
+      throw DioError(
+        requestOptions: _response.requestOptions,
+        response: _response,
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    return Response<FooRefOrValue>(
+      data: _responseData,
+      headers: _response.headers,
+      isRedirect: _response.isRedirect,
+      requestOptions: _response.requestOptions,
+      redirects: _response.redirects,
+      statusCode: _response.statusCode,
+      statusMessage: _response.statusMessage,
+      extra: _response.extra,
+    );
+  }
+
+  /// GET all Foos
+  /// 
+  ///
+  /// Parameters:
+  /// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
+  /// * [headers] - Can be used to add additional headers to the request
+  /// * [extras] - Can be used to add flags to the request
+  /// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
+  /// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
+  /// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
+  ///
+  /// Returns a [Future] containing a [Response] with a [BuiltList<FooRefOrValue>] as data
+  /// Throws [DioError] if API call or serialization fails
+  Future<Response<BuiltList<FooRefOrValue>>> getAllFoos({ 
+    CancelToken? cancelToken,
+    Map<String, dynamic>? headers,
+    Map<String, dynamic>? extra,
+    ValidateStatus? validateStatus,
+    ProgressCallback? onSendProgress,
+    ProgressCallback? onReceiveProgress,
+  }) async {
+    final _path = r'/foo';
+    final _options = Options(
+      method: r'GET',
+      headers: <String, dynamic>{
+        ...?headers,
+      },
+      extra: <String, dynamic>{
+        'secure': <Map<String, String>>[],
+        ...?extra,
+      },
+      validateStatus: validateStatus,
+    );
+
+    final _response = await _dio.request<Object>(
+      _path,
+      options: _options,
+      cancelToken: cancelToken,
+      onSendProgress: onSendProgress,
+      onReceiveProgress: onReceiveProgress,
+    );
+
+    BuiltList<FooRefOrValue> _responseData;
+
+    try {
+      const _responseType = FullType(BuiltList, [FullType(FooRefOrValue)]);
+      _responseData = _serializers.deserialize(
+        _response.data!,
+        specifiedType: _responseType,
+      ) as BuiltList<FooRefOrValue>;
+
+    } catch (error, stackTrace) {
+      throw DioError(
+        requestOptions: _response.requestOptions,
+        response: _response,
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    return Response<BuiltList<FooRefOrValue>>(
+      data: _responseData,
+      headers: _response.headers,
+      isRedirect: _response.isRedirect,
+      requestOptions: _response.requestOptions,
+      redirects: _response.redirects,
+      statusCode: _response.statusCode,
+      statusMessage: _response.statusMessage,
+      extra: _response.extra,
+    );
+  }
+
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart
new file mode 100644
index 00000000000..e301a95d8e3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart
@@ -0,0 +1,78 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:convert';
+import 'dart:typed_data';
+
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+import 'package:dio/src/parameter.dart';
+
+/// Format the given form parameter object into something that Dio can handle.
+/// Returns primitive or String.
+/// Returns List/Map if the value is BuildList/BuiltMap.
+dynamic encodeFormParameter(Serializers serializers, dynamic value, FullType type) {
+  if (value == null) {
+    return '';
+  }
+  if (value is String || value is num || value is bool) {
+    return value;
+  }
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (serialized is String) {
+    return serialized;
+  }
+  if (value is BuiltList || value is BuiltSet || value is BuiltMap) {
+    return serialized;
+  }
+  return json.encode(serialized);
+}
+
+dynamic encodeQueryParameter(
+  Serializers serializers,
+  dynamic value,
+  FullType type,
+) {
+  if (value == null) {
+    return '';
+  }
+  if (value is String || value is num || value is bool) {
+    return value;
+  }
+  if (value is Uint8List) {
+    // Currently not sure how to serialize this
+    return value;
+  }
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (serialized == null) {
+    return '';
+  }
+  if (serialized is String) {
+    return serialized;
+  }
+  return serialized;
+}
+
+ListParam<Object?> encodeCollectionQueryParameter<T>(
+  Serializers serializers,
+  dynamic value,
+  FullType type, {
+  ListFormat format = ListFormat.multi,
+}) {
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (value is BuiltList<T> || value is BuiltSet<T>) {
+    return ListParam(List.of((serialized as Iterable<Object?>).cast()), format);
+  }
+  throw ArgumentError('Invalid value passed to encodeCollectionQueryParameter');
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/api_key_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/api_key_auth.dart
new file mode 100644
index 00000000000..ee16e3f0f92
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/api_key_auth.dart
@@ -0,0 +1,30 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class ApiKeyAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> apiKeys = {};
+
+  @override
+  void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'apiKey');
+    for (final info in authInfo) {
+      final authName = info['name'] as String;
+      final authKeyName = info['keyName'] as String;
+      final authWhere = info['where'] as String;
+      final apiKey = apiKeys[authName];
+      if (apiKey != null) {
+        if (authWhere == 'query') {
+          options.queryParameters[authKeyName] = apiKey;
+        } else {
+          options.headers[authKeyName] = apiKey;
+        }
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/auth.dart
new file mode 100644
index 00000000000..f7ae9bf3f11
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/auth.dart
@@ -0,0 +1,18 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+
+abstract class AuthInterceptor extends Interceptor {
+  /// Get auth information on given route for the given type.
+  /// Can return an empty list if type is not present on auth data or
+  /// if route doesn't need authentication.
+  List<Map<String, String>> getAuthInfo(RequestOptions route, bool Function(Map<String, String> secure) handles) {
+    if (route.extra.containsKey('secure')) {
+      final auth = route.extra['secure'] as List<Map<String, String>>;
+      return auth.where((secure) => handles(secure)).toList();
+    }
+    return [];
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/basic_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/basic_auth.dart
new file mode 100644
index 00000000000..b6e6dce04f9
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/basic_auth.dart
@@ -0,0 +1,37 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:convert';
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class BasicAuthInfo {
+  final String username;
+  final String password;
+
+  const BasicAuthInfo(this.username, this.password);
+}
+
+class BasicAuthInterceptor extends AuthInterceptor {
+  final Map<String, BasicAuthInfo> authInfo = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final metadataAuthInfo = getAuthInfo(options, (secure) => (secure['type'] == 'http' && secure['scheme'] == 'basic') || secure['type'] == 'basic');
+    for (final info in metadataAuthInfo) {
+      final authName = info['name'] as String;
+      final basicAuthInfo = authInfo[authName];
+      if (basicAuthInfo != null) {
+        final basicAuth = 'Basic ${base64Encode(utf8.encode('${basicAuthInfo.username}:${basicAuthInfo.password}'))}';
+        options.headers['Authorization'] = basicAuth;
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/bearer_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/bearer_auth.dart
new file mode 100644
index 00000000000..1d4402b376c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/bearer_auth.dart
@@ -0,0 +1,26 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class BearerAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> tokens = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'http' && secure['scheme'] == 'bearer');
+    for (final info in authInfo) {
+      final token = tokens[info['name']];
+      if (token != null) {
+        options.headers['Authorization'] = 'Bearer ${token}';
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/oauth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/oauth.dart
new file mode 100644
index 00000000000..337cf762b0c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/auth/oauth.dart
@@ -0,0 +1,26 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class OAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> tokens = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'oauth' || secure['type'] == 'oauth2');
+    for (final info in authInfo) {
+      final token = tokens[info['name']];
+      if (token != null) {
+        options.headers['Authorization'] = 'Bearer ${token}';
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/date_serializer.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/date_serializer.dart
new file mode 100644
index 00000000000..db3c5c437db
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/date_serializer.dart
@@ -0,0 +1,31 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/serializer.dart';
+import 'package:openapi/src/model/date.dart';
+
+class DateSerializer implements PrimitiveSerializer<Date> {
+
+  const DateSerializer();
+
+  @override
+  Iterable<Type> get types => BuiltList.of([Date]);
+
+  @override
+  String get wireName => 'Date';
+
+  @override
+  Date deserialize(Serializers serializers, Object serialized,
+      {FullType specifiedType = FullType.unspecified}) {
+    final parsed = DateTime.parse(serialized as String);
+    return Date(parsed.year, parsed.month, parsed.day);
+  }
+
+  @override
+  Object serialize(Serializers serializers, Date date,
+      {FullType specifiedType = FullType.unspecified}) {
+    return date.toString();
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
new file mode 100644
index 00000000000..e71cfa4d7c4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
@@ -0,0 +1,159 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'addressable.g.dart';
+
+/// Base schema for adressable entities
+///
+/// Properties:
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+@BuiltValue(instantiable: false)
+abstract class Addressable  {
+    /// Hyperlink reference
+    @BuiltValueField(wireName: r'href')
+    String? get href;
+    /// unique identifier
+    @BuiltValueField(wireName: r'id')
+    String? get id;
+
+
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(AddressableBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Addressable> get serializer => _$AddressableSerializer();
+
+
+}
+
+class _$AddressableSerializer implements PrimitiveSerializer<Addressable> {
+    @override
+    final Iterable<Type> types = const [Addressable];
+
+    @override
+    final String wireName = r'Addressable';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Addressable object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Addressable object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AddressableBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Addressable deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        return serializers.deserialize(serialized, specifiedType: FullType($Addressable)) as $Addressable;
+    }
+}
+
+/// a concrete implmentation of [Addressable], since [Addressable] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $Addressable implements Addressable, Built<$Addressable, $AddressableBuilder> {
+  $Addressable._();
+
+  factory $Addressable([void Function($AddressableBuilder)? updates]) = _$$Addressable;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($AddressableBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$Addressable> get serializer => _$$AddressableSerializer();
+}
+
+class _$$AddressableSerializer implements PrimitiveSerializer<$Addressable> {
+    @override
+    final Iterable<Type> types = const [$Addressable, _$$Addressable];
+
+    @override
+    final String wireName = r'$Addressable';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $Addressable object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(Addressable))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $AddressableBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $Addressable deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $AddressableBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
new file mode 100644
index 00000000000..44496c3c5c5
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
@@ -0,0 +1,172 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/foo_ref_or_value.dart';
+import 'package:openapi/src/model/entity.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'bar.g.dart';
+
+/// Bar
+///
+/// Properties:
+/// * [id] 
+/// * [barPropA] 
+/// * [fooPropB] 
+/// * [foo] 
+/// * [href] - Hyperlink reference
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class Bar implements Entity, Built<Bar, BarBuilder> {
+    @BuiltValueField(wireName: r'foo')
+    FooRefOrValue? get foo;
+    @BuiltValueField(wireName: r'fooPropB')
+    String? get fooPropB;
+    @BuiltValueField(wireName: r'barPropA')
+    String? get barPropA;
+
+
+    static const String discriminatorFieldName = r'atType';
+    Bar._();
+    
+    factory Bar([void updates(BarBuilder b)]) = _$Bar;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(BarBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Bar> get serializer => _$BarSerializer();
+
+
+}
+
+class _$BarSerializer implements PrimitiveSerializer<Bar> {
+    @override
+    final Iterable<Type> types = const [Bar, _$Bar];
+
+    @override
+    final String wireName = r'Bar';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Bar object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.foo != null) {
+            yield r'foo';
+            yield serializers.serialize(object.foo,
+                    specifiedType: const FullType(FooRefOrValue));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.fooPropB != null) {
+            yield r'fooPropB';
+            yield serializers.serialize(object.fooPropB,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+        if (object.barPropA != null) {
+            yield r'barPropA';
+            yield serializers.serialize(object.barPropA,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Bar object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'foo':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
+                    result.foo.replace(valueDes);
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'fooPropB':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.fooPropB = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                 case r'barPropA':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.barPropA = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Bar deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = BarBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
new file mode 100644
index 00000000000..4ecdf3fc612
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
@@ -0,0 +1,172 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/foo_ref_or_value.dart';
+import 'package:openapi/src/model/entity.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'bar_create.g.dart';
+
+/// BarCreate
+///
+/// Properties:
+/// * [barPropA] 
+/// * [fooPropB] 
+/// * [foo] 
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class BarCreate implements Entity, Built<BarCreate, BarCreateBuilder> {
+    @BuiltValueField(wireName: r'foo')
+    FooRefOrValue? get foo;
+    @BuiltValueField(wireName: r'fooPropB')
+    String? get fooPropB;
+    @BuiltValueField(wireName: r'barPropA')
+    String? get barPropA;
+
+
+    static const String discriminatorFieldName = r'atType';
+    BarCreate._();
+    
+    factory BarCreate([void updates(BarCreateBuilder b)]) = _$BarCreate;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(BarCreateBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<BarCreate> get serializer => _$BarCreateSerializer();
+
+
+}
+
+class _$BarCreateSerializer implements PrimitiveSerializer<BarCreate> {
+    @override
+    final Iterable<Type> types = const [BarCreate, _$BarCreate];
+
+    @override
+    final String wireName = r'BarCreate';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, BarCreate object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.foo != null) {
+            yield r'foo';
+            yield serializers.serialize(object.foo,
+                    specifiedType: const FullType(FooRefOrValue));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.fooPropB != null) {
+            yield r'fooPropB';
+            yield serializers.serialize(object.fooPropB,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+        if (object.barPropA != null) {
+            yield r'barPropA';
+            yield serializers.serialize(object.barPropA,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, BarCreate object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarCreateBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'foo':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
+                    result.foo.replace(valueDes);
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'fooPropB':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.fooPropB = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                 case r'barPropA':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.barPropA = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    BarCreate deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = BarCreateBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
new file mode 100644
index 00000000000..5289953ee57
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
@@ -0,0 +1,152 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/entity_ref.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'bar_ref.g.dart';
+
+/// BarRef
+///
+/// Properties:
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class BarRef implements EntityRef, Built<BarRef, BarRefBuilder> {
+
+
+    static const String discriminatorFieldName = r'atType';
+    BarRef._();
+    
+    factory BarRef([void updates(BarRefBuilder b)]) = _$BarRef;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(BarRefBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<BarRef> get serializer => _$BarRefSerializer();
+
+
+}
+
+class _$BarRefSerializer implements PrimitiveSerializer<BarRef> {
+    @override
+    final Iterable<Type> types = const [BarRef, _$BarRef];
+
+    @override
+    final String wireName = r'BarRef';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, BarRef object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atReferredType != null) {
+            yield r'@referredType';
+            yield serializers.serialize(object.atReferredType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.name != null) {
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, BarRef object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarRefBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@referredType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atReferredType = valueDes;
+                    break;
+                 case r'name':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.name = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    BarRef deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = BarRefBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
new file mode 100644
index 00000000000..98cd4b26407
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
@@ -0,0 +1,99 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/bar_ref.dart';
+import 'package:openapi/src/model/bar.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'bar_ref_or_value.g.dart';
+
+/// BarRefOrValue
+///
+/// Properties:
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class BarRefOrValue implements Built<BarRefOrValue, BarRefOrValueBuilder> {
+
+    /// One Of [Bar], [BarRef]
+    OneOf get oneOf;
+
+
+    static const String discriminatorFieldName = r'atType';
+    static const Map<String, Type> discriminatorMapping = {
+        r'Bar': Bar,
+        r'BarRef': BarRef,
+    };
+    
+    BarRefOrValue._();
+    
+    factory BarRefOrValue([void updates(BarRefOrValueBuilder b)]) = _$BarRefOrValue;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(BarRefOrValueBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<BarRefOrValue> get serializer => _$BarRefOrValueSerializer();
+
+
+}
+
+class _$BarRefOrValueSerializer implements PrimitiveSerializer<BarRefOrValue> {
+    @override
+    final Iterable<Type> types = const [BarRefOrValue, _$BarRefOrValue];
+
+    @override
+    final String wireName = r'BarRefOrValue';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, BarRefOrValue object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+    }
+
+    @override
+    Object serialize(Serializers serializers, BarRefOrValue object,
+        {FullType specifiedType = FullType.unspecified}) {
+        final oneOf = object.oneOf;
+        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+    }
+
+    
+    @override
+    BarRefOrValue deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = BarRefOrValueBuilder();
+        Object? oneOfDataSrc;
+        final serializedList = (serialized as Iterable<Object?>).toList();    
+        final discIndex = serializedList.indexOf(BarRefOrValue.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
+        oneOfDataSrc = serialized;
+        final oneOfTypes = [Bar, BarRef, ];
+        Object oneOfResult;
+        Type oneOfType;
+        switch (discValue) {
+            case 'Bar':                
+                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(Bar)) as Bar;
+                oneOfType = Bar;
+                break;
+            case 'BarRef':                
+                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(BarRef)) as BarRef;
+                oneOfType = BarRef;
+                break;
+            default:      
+                throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
+        }    
+        result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/date.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/date.dart
new file mode 100644
index 00000000000..b21c7f544be
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/date.dart
@@ -0,0 +1,70 @@
+/// A gregorian calendar date generated by
+/// OpenAPI generator to differentiate
+/// between [DateTime] and [Date] formats.
+class Date implements Comparable<Date> {
+  final int year;
+
+  /// January is 1.
+  final int month;
+
+  /// First day is 1.
+  final int day;
+
+  Date(this.year, this.month, this.day);
+
+  /// The current date
+  static Date now({bool utc = false}) {
+    var now = DateTime.now();
+    if (utc) {
+      now = now.toUtc();
+    }
+    return now.toDate();
+  }
+
+  /// Convert to a [DateTime].
+  DateTime toDateTime({bool utc = false}) {
+    if (utc) {
+      return DateTime.utc(year, month, day);
+    } else {
+      return DateTime(year, month, day);
+    }
+  }
+
+  @override
+  int compareTo(Date other) {
+    int d = year.compareTo(other.year);
+    if (d != 0) {
+      return d;
+    }
+    d = month.compareTo(other.month);
+    if (d != 0) {
+      return d;
+    }
+    return day.compareTo(other.day);
+  }
+
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      other is Date &&
+          runtimeType == other.runtimeType &&
+          year == other.year &&
+          month == other.month &&
+          day == other.day;
+
+  @override
+  int get hashCode => year.hashCode ^ month.hashCode ^ day.hashCode;
+
+  @override
+  String toString() {
+    final yyyy = year.toString();
+    final mm = month.toString().padLeft(2, '0');
+    final dd = day.toString().padLeft(2, '0');
+
+    return '$yyyy-$mm-$dd';
+  }
+}
+
+extension DateTimeToDate on DateTime {
+  Date toDate() => Date(year, month, day);
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
new file mode 100644
index 00000000000..701e0e79429
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
@@ -0,0 +1,253 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/extensible.dart';
+import 'package:openapi/src/model/pizza_speziale.dart';
+import 'package:openapi/src/model/foo.dart';
+import 'package:openapi/src/model/pizza.dart';
+import 'package:openapi/src/model/addressable.dart';
+import 'package:openapi/src/model/pasta.dart';
+import 'package:openapi/src/model/bar_create.dart';
+import 'package:openapi/src/model/bar.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'entity.g.dart';
+
+/// Entity
+///
+/// Properties:
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue(instantiable: false)
+abstract class Entity implements Addressable, Extensible {
+
+
+    static const String discriminatorFieldName = r'atType';
+    static const Map<String, Type> discriminatorMapping = {
+        r'Bar': Bar,
+        r'Bar_Create': BarCreate,
+        r'Foo': Foo,
+        r'Pasta': Pasta,
+        r'Pizza': Pizza,
+        r'PizzaSpeziale': PizzaSpeziale,
+    };
+    
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(EntityBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Entity> get serializer => _$EntitySerializer();
+
+
+}
+
+class _$EntitySerializer implements PrimitiveSerializer<Entity> {
+    @override
+    final Iterable<Type> types = const [Entity];
+
+    @override
+    final String wireName = r'Entity';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Entity object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, Entity object,
+        {FullType specifiedType = FullType.unspecified}) {
+        if (object is Bar) {
+            return serializers.serialize(object, specifiedType: FullType(Bar))!;
+        }
+        if (object is BarCreate) {
+            return serializers.serialize(object, specifiedType: FullType(BarCreate))!;
+        }
+        if (object is Foo) {
+            return serializers.serialize(object, specifiedType: FullType(Foo))!;
+        }
+        if (object is Pasta) {
+            return serializers.serialize(object, specifiedType: FullType(Pasta))!;
+        }
+        if (object is Pizza) {
+            return serializers.serialize(object, specifiedType: FullType(Pizza))!;
+        }
+        if (object is PizzaSpeziale) {
+            return serializers.serialize(object, specifiedType: FullType(PizzaSpeziale))!;
+        }
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Entity deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final discIndex = serializedList.indexOf(Entity.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+        switch (discValue) {
+            case 'Bar':                
+                return serializers.deserialize(serialized, specifiedType: FullType(Bar)) as Bar;
+            case 'Bar_Create':                
+                return serializers.deserialize(serialized, specifiedType: FullType(BarCreate)) as BarCreate;
+            case 'Foo':                
+                return serializers.deserialize(serialized, specifiedType: FullType(Foo)) as Foo;
+            case 'Pasta':                
+                return serializers.deserialize(serialized, specifiedType: FullType(Pasta)) as Pasta;
+            case 'Pizza':                
+                return serializers.deserialize(serialized, specifiedType: FullType(Pizza)) as Pizza;
+            case 'PizzaSpeziale':                
+                return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
+            default:            
+                return serializers.deserialize(serialized, specifiedType: FullType($Entity)) as $Entity;
+        }
+    }
+}
+
+/// a concrete implmentation of [Entity], since [Entity] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $Entity implements Entity, Built<$Entity, $EntityBuilder> {
+  $Entity._();
+
+  factory $Entity([void Function($EntityBuilder)? updates]) = _$$Entity;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($EntityBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$Entity> get serializer => _$$EntitySerializer();
+}
+
+class _$$EntitySerializer implements PrimitiveSerializer<$Entity> {
+    @override
+    final Iterable<Type> types = const [$Entity, _$$Entity];
+
+    @override
+    final String wireName = r'$Entity';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $Entity object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(Entity))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $EntityBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $Entity deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $EntityBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
new file mode 100644
index 00000000000..d23b6149e3f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
@@ -0,0 +1,263 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/extensible.dart';
+import 'package:openapi/src/model/bar_ref.dart';
+import 'package:openapi/src/model/addressable.dart';
+import 'package:openapi/src/model/foo_ref.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'entity_ref.g.dart';
+
+/// Entity reference schema to be use for all entityRef class.
+///
+/// Properties:
+/// * [name] - Name of the related entity.
+/// * [atReferredType] - The actual type of the target instance when needed for disambiguation.
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue(instantiable: false)
+abstract class EntityRef implements Addressable, Extensible {
+    /// The actual type of the target instance when needed for disambiguation.
+    @BuiltValueField(wireName: r'@referredType')
+    String? get atReferredType;
+    /// Name of the related entity.
+    @BuiltValueField(wireName: r'name')
+    String? get name;
+
+
+    static const String discriminatorFieldName = r'atType';
+    static const Map<String, Type> discriminatorMapping = {
+        r'BarRef': BarRef,
+        r'FooRef': FooRef,
+    };
+    
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(EntityRefBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<EntityRef> get serializer => _$EntityRefSerializer();
+
+
+}
+
+class _$EntityRefSerializer implements PrimitiveSerializer<EntityRef> {
+    @override
+    final Iterable<Type> types = const [EntityRef];
+
+    @override
+    final String wireName = r'EntityRef';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, EntityRef object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atReferredType != null) {
+            yield r'@referredType';
+            yield serializers.serialize(object.atReferredType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.name != null) {
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, EntityRef object,
+        {FullType specifiedType = FullType.unspecified}) {
+        if (object is BarRef) {
+            return serializers.serialize(object, specifiedType: FullType(BarRef))!;
+        }
+        if (object is FooRef) {
+            return serializers.serialize(object, specifiedType: FullType(FooRef))!;
+        }
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityRefBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@referredType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atReferredType = valueDes;
+                    break;
+                 case r'name':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.name = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    EntityRef deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final discIndex = serializedList.indexOf(EntityRef.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+        switch (discValue) {
+            case 'BarRef':                
+                return serializers.deserialize(serialized, specifiedType: FullType(BarRef)) as BarRef;
+            case 'FooRef':                
+                return serializers.deserialize(serialized, specifiedType: FullType(FooRef)) as FooRef;
+            default:            
+                return serializers.deserialize(serialized, specifiedType: FullType($EntityRef)) as $EntityRef;
+        }
+    }
+}
+
+/// a concrete implmentation of [EntityRef], since [EntityRef] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $EntityRef implements EntityRef, Built<$EntityRef, $EntityRefBuilder> {
+  $EntityRef._();
+
+  factory $EntityRef([void Function($EntityRefBuilder)? updates]) = _$$EntityRef;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($EntityRefBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$EntityRef> get serializer => _$$EntityRefSerializer();
+}
+
+class _$$EntityRefSerializer implements PrimitiveSerializer<$EntityRef> {
+    @override
+    final Iterable<Type> types = const [$EntityRef, _$$EntityRef];
+
+    @override
+    final String wireName = r'$EntityRef';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $EntityRef object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(EntityRef))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $EntityRefBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@referredType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atReferredType = valueDes;
+                    break;
+                 case r'name':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.name = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $EntityRef deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $EntityRefBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
new file mode 100644
index 00000000000..dc19d251f9f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
@@ -0,0 +1,176 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'extensible.g.dart';
+
+/// Extensible
+///
+/// Properties:
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue(instantiable: false)
+abstract class Extensible  {
+    /// A URI to a JSON-Schema file that defines additional attributes and relationships
+    @BuiltValueField(wireName: r'@schemaLocation')
+    String? get atSchemaLocation;
+    /// When sub-classing, this defines the super-class
+    @BuiltValueField(wireName: r'@baseType')
+    String? get atBaseType;
+    /// When sub-classing, this defines the sub-class Extensible name
+    @BuiltValueField(wireName: r'@type')
+    String get atType;
+
+
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(ExtensibleBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Extensible> get serializer => _$ExtensibleSerializer();
+
+
+}
+
+class _$ExtensibleSerializer implements PrimitiveSerializer<Extensible> {
+    @override
+    final Iterable<Type> types = const [Extensible];
+
+    @override
+    final String wireName = r'Extensible';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Extensible object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, Extensible object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ExtensibleBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Extensible deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        return serializers.deserialize(serialized, specifiedType: FullType($Extensible)) as $Extensible;
+    }
+}
+
+/// a concrete implmentation of [Extensible], since [Extensible] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $Extensible implements Extensible, Built<$Extensible, $ExtensibleBuilder> {
+  $Extensible._();
+
+  factory $Extensible([void Function($ExtensibleBuilder)? updates]) = _$$Extensible;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($ExtensibleBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$Extensible> get serializer => _$$ExtensibleSerializer();
+}
+
+class _$$ExtensibleSerializer implements PrimitiveSerializer<$Extensible> {
+    @override
+    final Iterable<Type> types = const [$Extensible, _$$Extensible];
+
+    @override
+    final String wireName = r'$Extensible';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $Extensible object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(Extensible))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $ExtensibleBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $Extensible deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $ExtensibleBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
new file mode 100644
index 00000000000..41de39d5f31
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
@@ -0,0 +1,158 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/entity.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'foo.g.dart';
+
+/// Foo
+///
+/// Properties:
+/// * [fooPropA] 
+/// * [fooPropB] 
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class Foo implements Entity, Built<Foo, FooBuilder> {
+    @BuiltValueField(wireName: r'fooPropA')
+    String? get fooPropA;
+    @BuiltValueField(wireName: r'fooPropB')
+    String? get fooPropB;
+
+
+    static const String discriminatorFieldName = r'atType';
+    Foo._();
+    
+    factory Foo([void updates(FooBuilder b)]) = _$Foo;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(FooBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Foo> get serializer => _$FooSerializer();
+
+
+}
+
+class _$FooSerializer implements PrimitiveSerializer<Foo> {
+    @override
+    final Iterable<Type> types = const [Foo, _$Foo];
+
+    @override
+    final String wireName = r'Foo';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Foo object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.fooPropA != null) {
+            yield r'fooPropA';
+            yield serializers.serialize(object.fooPropA,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.fooPropB != null) {
+            yield r'fooPropB';
+            yield serializers.serialize(object.fooPropB,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, Foo object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'fooPropA':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.fooPropA = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'fooPropB':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.fooPropB = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Foo deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FooBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
new file mode 100644
index 00000000000..cb6ccd55179
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
@@ -0,0 +1,165 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/entity_ref.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'foo_ref.g.dart';
+
+/// FooRef
+///
+/// Properties:
+/// * [foorefPropA] 
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class FooRef implements EntityRef, Built<FooRef, FooRefBuilder> {
+    @BuiltValueField(wireName: r'foorefPropA')
+    String? get foorefPropA;
+
+
+    static const String discriminatorFieldName = r'atType';
+    FooRef._();
+    
+    factory FooRef([void updates(FooRefBuilder b)]) = _$FooRef;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(FooRefBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<FooRef> get serializer => _$FooRefSerializer();
+
+
+}
+
+class _$FooRefSerializer implements PrimitiveSerializer<FooRef> {
+    @override
+    final Iterable<Type> types = const [FooRef, _$FooRef];
+
+    @override
+    final String wireName = r'FooRef';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, FooRef object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atReferredType != null) {
+            yield r'@referredType';
+            yield serializers.serialize(object.atReferredType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.foorefPropA != null) {
+            yield r'foorefPropA';
+            yield serializers.serialize(object.foorefPropA,
+                    specifiedType: const FullType(String));
+        }
+        if (object.name != null) {
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, FooRef object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooRefBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@referredType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atReferredType = valueDes;
+                    break;
+                 case r'foorefPropA':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.foorefPropA = valueDes;
+                    break;
+                 case r'name':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.name = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    FooRef deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FooRefBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
new file mode 100644
index 00000000000..ab343ffd8db
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
@@ -0,0 +1,99 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/foo.dart';
+import 'package:openapi/src/model/foo_ref.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'foo_ref_or_value.g.dart';
+
+/// FooRefOrValue
+///
+/// Properties:
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class FooRefOrValue implements Built<FooRefOrValue, FooRefOrValueBuilder> {
+
+    /// One Of [Foo], [FooRef]
+    OneOf get oneOf;
+
+
+    static const String discriminatorFieldName = r'atType';
+    static const Map<String, Type> discriminatorMapping = {
+        r'Foo': Foo,
+        r'FooRef': FooRef,
+    };
+    
+    FooRefOrValue._();
+    
+    factory FooRefOrValue([void updates(FooRefOrValueBuilder b)]) = _$FooRefOrValue;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(FooRefOrValueBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<FooRefOrValue> get serializer => _$FooRefOrValueSerializer();
+
+
+}
+
+class _$FooRefOrValueSerializer implements PrimitiveSerializer<FooRefOrValue> {
+    @override
+    final Iterable<Type> types = const [FooRefOrValue, _$FooRefOrValue];
+
+    @override
+    final String wireName = r'FooRefOrValue';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, FooRefOrValue object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+    }
+
+    @override
+    Object serialize(Serializers serializers, FooRefOrValue object,
+        {FullType specifiedType = FullType.unspecified}) {
+        final oneOf = object.oneOf;
+        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+    }
+
+    
+    @override
+    FooRefOrValue deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FooRefOrValueBuilder();
+        Object? oneOfDataSrc;
+        final serializedList = (serialized as Iterable<Object?>).toList();    
+        final discIndex = serializedList.indexOf(FooRefOrValue.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
+        oneOfDataSrc = serialized;
+        final oneOfTypes = [Foo, FooRef, ];
+        Object oneOfResult;
+        Type oneOfType;
+        switch (discValue) {
+            case 'Foo':                
+                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(Foo)) as Foo;
+                oneOfType = Foo;
+                break;
+            case 'FooRef':                
+                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(FooRef)) as FooRef;
+                oneOfType = FooRef;
+                break;
+            default:      
+                throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
+        }    
+        result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
new file mode 100644
index 00000000000..99106f85ef9
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
@@ -0,0 +1,145 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/entity.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'pasta.g.dart';
+
+/// Pasta
+///
+/// Properties:
+/// * [vendor] 
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class Pasta implements Entity, Built<Pasta, PastaBuilder> {
+    @BuiltValueField(wireName: r'vendor')
+    String? get vendor;
+
+
+    static const String discriminatorFieldName = r'atType';
+    Pasta._();
+    
+    factory Pasta([void updates(PastaBuilder b)]) = _$Pasta;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(PastaBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Pasta> get serializer => _$PastaSerializer();
+
+
+}
+
+class _$PastaSerializer implements PrimitiveSerializer<Pasta> {
+    @override
+    final Iterable<Type> types = const [Pasta, _$Pasta];
+
+    @override
+    final String wireName = r'Pasta';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Pasta object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+        if (object.vendor != null) {
+            yield r'vendor';
+            yield serializers.serialize(object.vendor,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Pasta object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PastaBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                 case r'vendor':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.vendor = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Pasta deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = PastaBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
new file mode 100644
index 00000000000..8e915e4c162
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
@@ -0,0 +1,235 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/pizza_speziale.dart';
+import 'package:openapi/src/model/entity.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'pizza.g.dart';
+
+/// Pizza
+///
+/// Properties:
+/// * [pizzaSize] 
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue(instantiable: false)
+abstract class Pizza implements Entity {
+    @BuiltValueField(wireName: r'pizzaSize')
+    num? get pizzaSize;
+
+
+    static const String discriminatorFieldName = r'atType';
+    static const Map<String, Type> discriminatorMapping = {
+        r'PizzaSpeziale': PizzaSpeziale,
+    };
+    
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(PizzaBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Pizza> get serializer => _$PizzaSerializer();
+
+
+}
+
+class _$PizzaSerializer implements PrimitiveSerializer<Pizza> {
+    @override
+    final Iterable<Type> types = const [Pizza];
+
+    @override
+    final String wireName = r'Pizza';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Pizza object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.pizzaSize != null) {
+            yield r'pizzaSize';
+            yield serializers.serialize(object.pizzaSize,
+                    specifiedType: const FullType(num));
+        }
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, Pizza object,
+        {FullType specifiedType = FullType.unspecified}) {
+        if (object is PizzaSpeziale) {
+            return serializers.serialize(object, specifiedType: FullType(PizzaSpeziale))!;
+        }
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'pizzaSize':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(num)) as num;
+                    result.pizzaSize = valueDes;
+                    break;
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Pizza deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final discIndex = serializedList.indexOf(Pizza.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+        switch (discValue) {
+            case 'PizzaSpeziale':                
+                return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
+            default:            
+                return serializers.deserialize(serialized, specifiedType: FullType($Pizza)) as $Pizza;
+        }
+    }
+}
+
+/// a concrete implmentation of [Pizza], since [Pizza] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $Pizza implements Pizza, Built<$Pizza, $PizzaBuilder> {
+  $Pizza._();
+
+  factory $Pizza([void Function($PizzaBuilder)? updates]) = _$$Pizza;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($PizzaBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$Pizza> get serializer => _$$PizzaSerializer();
+}
+
+class _$$PizzaSerializer implements PrimitiveSerializer<$Pizza> {
+    @override
+    final Iterable<Type> types = const [$Pizza, _$$Pizza];
+
+    @override
+    final String wireName = r'$Pizza';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $Pizza object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(Pizza))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $PizzaBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'pizzaSize':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(num)) as num;
+                    result.pizzaSize = valueDes;
+                    break;
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $Pizza deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $PizzaBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
new file mode 100644
index 00000000000..ae2780b4892
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
@@ -0,0 +1,155 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/pizza.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'pizza_speziale.g.dart';
+
+/// PizzaSpeziale
+///
+/// Properties:
+/// * [toppings] 
+/// * [href] - Hyperlink reference
+/// * [id] - unique identifier
+/// * [atSchemaLocation] - A URI to a JSON-Schema file that defines additional attributes and relationships
+/// * [atBaseType] - When sub-classing, this defines the super-class
+/// * [atType] - When sub-classing, this defines the sub-class Extensible name
+@BuiltValue()
+abstract class PizzaSpeziale implements Pizza, Built<PizzaSpeziale, PizzaSpezialeBuilder> {
+    @BuiltValueField(wireName: r'toppings')
+    String? get toppings;
+
+
+    static const String discriminatorFieldName = r'atType';
+    PizzaSpeziale._();
+    
+    factory PizzaSpeziale([void updates(PizzaSpezialeBuilder b)]) = _$PizzaSpeziale;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(PizzaSpezialeBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<PizzaSpeziale> get serializer => _$PizzaSpezialeSerializer();
+
+
+}
+
+class _$PizzaSpezialeSerializer implements PrimitiveSerializer<PizzaSpeziale> {
+    @override
+    final Iterable<Type> types = const [PizzaSpeziale, _$PizzaSpeziale];
+
+    @override
+    final String wireName = r'PizzaSpeziale';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, PizzaSpeziale object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.atSchemaLocation != null) {
+            yield r'@schemaLocation';
+            yield serializers.serialize(object.atSchemaLocation,
+                    specifiedType: const FullType(String));
+        }
+        if (object.pizzaSize != null) {
+            yield r'pizzaSize';
+            yield serializers.serialize(object.pizzaSize,
+                    specifiedType: const FullType(num));
+        }
+        if (object.toppings != null) {
+            yield r'toppings';
+            yield serializers.serialize(object.toppings,
+                    specifiedType: const FullType(String));
+        }
+        if (object.atBaseType != null) {
+            yield r'@baseType';
+            yield serializers.serialize(object.atBaseType,
+                    specifiedType: const FullType(String));
+        }
+        if (object.href != null) {
+            yield r'href';
+            yield serializers.serialize(object.href,
+                    specifiedType: const FullType(String));
+        }
+        if (object.id != null) {
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(String));
+        }
+        yield r'@type';
+        yield serializers.serialize(object.atType,
+                specifiedType: const FullType(String));
+    }
+
+    @override
+    Object serialize(Serializers serializers, PizzaSpeziale object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaSpezialeBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'@schemaLocation':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atSchemaLocation = valueDes;
+                    break;
+                 case r'pizzaSize':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(num)) as num;
+                    result.pizzaSize = valueDes;
+                    break;
+                 case r'toppings':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.toppings = valueDes;
+                    break;
+                 case r'@baseType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atBaseType = valueDes;
+                    break;
+                 case r'href':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.href = valueDes;
+                    break;
+                 case r'id':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.id = valueDes;
+                    break;
+                 case r'@type':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.atType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    PizzaSpeziale deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = PizzaSpezialeBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart
new file mode 100644
index 00000000000..114deea93e4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart
@@ -0,0 +1,60 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+// ignore_for_file: unused_import
+
+import 'package:one_of_serializer/any_of_serializer.dart';
+import 'package:one_of_serializer/one_of_serializer.dart';
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/json_object.dart';
+import 'package:built_value/serializer.dart';
+import 'package:built_value/standard_json_plugin.dart';
+import 'package:built_value/iso_8601_date_time_serializer.dart';
+import 'package:openapi/src/date_serializer.dart';
+import 'package:openapi/src/model/date.dart';
+
+import 'package:openapi/src/model/addressable.dart';
+import 'package:openapi/src/model/bar.dart';
+import 'package:openapi/src/model/bar_create.dart';
+import 'package:openapi/src/model/bar_ref.dart';
+import 'package:openapi/src/model/bar_ref_or_value.dart';
+import 'package:openapi/src/model/entity.dart';
+import 'package:openapi/src/model/entity_ref.dart';
+import 'package:openapi/src/model/extensible.dart';
+import 'package:openapi/src/model/foo.dart';
+import 'package:openapi/src/model/foo_ref.dart';
+import 'package:openapi/src/model/foo_ref_or_value.dart';
+import 'package:openapi/src/model/pasta.dart';
+import 'package:openapi/src/model/pizza.dart';
+import 'package:openapi/src/model/pizza_speziale.dart';
+
+part 'serializers.g.dart';
+
+@SerializersFor([
+  Addressable,$Addressable,
+  Bar,
+  BarCreate,
+  BarRef,
+  BarRefOrValue,
+  Entity,$Entity,
+  EntityRef,$EntityRef,
+  Extensible,$Extensible,
+  Foo,
+  FooRef,
+  FooRefOrValue,
+  Pasta,
+  Pizza,$Pizza,
+  PizzaSpeziale,
+])
+Serializers serializers = (_$serializers.toBuilder()
+      ..addBuilderFactory(
+        const FullType(BuiltList, [FullType(FooRefOrValue)]),
+        () => ListBuilder<FooRefOrValue>(),
+      )
+      ..add(const DateSerializer())
+      ..add(Iso8601DateTimeSerializer()))
+    .build();
+
+Serializers standardSerializers =
+    (serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
new file mode 100644
index 00000000000..7f0fbb9e6bf
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
@@ -0,0 +1,19 @@
+name: openapi
+version: 1.0.0
+description: OpenAPI API client
+homepage: homepage
+
+environment:
+  sdk: '>=2.12.0 <3.0.0'
+
+dependencies:
+  dio: '>=4.0.0 <5.0.0'
+  one_of: '>=1.5.0 <2.0.0'
+  one_of_serializer: '>=1.5.0 <2.0.0'
+  built_value: '>=8.1.0 <9.0.0'
+  built_collection: '>=5.1.0 <6.0.0'
+
+dev_dependencies:
+  built_value_generator: '>=8.1.0 <9.0.0'
+  build_runner: any
+  test: ^1.16.0
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/addressable_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/addressable_test.dart
new file mode 100644
index 00000000000..696e26e8e54
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/addressable_test.dart
@@ -0,0 +1,23 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Addressable
+void main() {
+  //final instance = AddressableBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Addressable, () {
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_api_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_api_test.dart
new file mode 100644
index 00000000000..73be91c446e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_api_test.dart
@@ -0,0 +1,18 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+
+/// tests for BarApi
+void main() {
+  final instance = Openapi().getBarApi();
+
+  group(BarApi, () {
+    // Create a Bar
+    //
+    //Future<Bar> createBar(BarCreate barCreate) async
+    test('test createBar', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart
new file mode 100644
index 00000000000..ebd0b0d469c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart
@@ -0,0 +1,26 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for BarCreate
+void main() {
+  final instance = BarCreateBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(BarCreate, () {
+    // String barPropA
+    test('to test the property `barPropA`', () async {
+      // TODO
+    });
+
+    // String fooPropB
+    test('to test the property `fooPropB`', () async {
+      // TODO
+    });
+
+    // FooRefOrValue foo
+    test('to test the property `foo`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart
new file mode 100644
index 00000000000..e9dd1841233
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart
@@ -0,0 +1,11 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for BarRefOrValue
+void main() {
+  final instance = BarRefOrValueBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(BarRefOrValue, () {
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart
new file mode 100644
index 00000000000..8048c4aecb7
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart
@@ -0,0 +1,11 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for BarRef
+void main() {
+  final instance = BarRefBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(BarRef, () {
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart
new file mode 100644
index 00000000000..e77bf0a38fd
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart
@@ -0,0 +1,26 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Bar
+void main() {
+  final instance = BarBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Bar, () {
+    // String barPropA
+    test('to test the property `barPropA`', () async {
+      // TODO
+    });
+
+    // String fooPropB
+    test('to test the property `fooPropB`', () async {
+      // TODO
+    });
+
+    // FooRefOrValue foo
+    test('to test the property `foo`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart
new file mode 100644
index 00000000000..f3e86f57263
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart
@@ -0,0 +1,23 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for EntityRef
+void main() {
+  //final instance = EntityRefBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(EntityRef, () {
+    // Name of the related entity.
+    // String name
+    test('to test the property `name`', () async {
+      // TODO
+    });
+
+    // The actual type of the target instance when needed for disambiguation.
+    // String atReferredType
+    test('to test the property `atReferredType`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart
new file mode 100644
index 00000000000..77be22ac774
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart
@@ -0,0 +1,11 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Entity
+void main() {
+  //final instance = EntityBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Entity, () {
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/extensible_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/extensible_test.dart
new file mode 100644
index 00000000000..75e6211e074
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/extensible_test.dart
@@ -0,0 +1,29 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Extensible
+void main() {
+  //final instance = ExtensibleBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Extensible, () {
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_api_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_api_test.dart
new file mode 100644
index 00000000000..f33986a08b6
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_api_test.dart
@@ -0,0 +1,25 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+
+/// tests for FooApi
+void main() {
+  final instance = Openapi().getFooApi();
+
+  group(FooApi, () {
+    // Create a Foo
+    //
+    //Future<FooRefOrValue> createFoo({ Foo foo }) async
+    test('test createFoo', () async {
+      // TODO
+    });
+
+    // GET all Foos
+    //
+    //Future<BuiltList<FooRefOrValue>> getAllFoos() async
+    test('test getAllFoos', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart
new file mode 100644
index 00000000000..2b25b2efe97
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart
@@ -0,0 +1,11 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for FooRefOrValue
+void main() {
+  final instance = FooRefOrValueBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(FooRefOrValue, () {
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart
new file mode 100644
index 00000000000..af4e0d7cb1f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart
@@ -0,0 +1,47 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for FooRefOrValueWithProperties
+void main() {
+  final instance = FooRefOrValueWithPropertiesBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(FooRefOrValueWithProperties, () {
+    // A shared property with oneOf
+    // String sharedProp
+    test('to test the property `sharedProp`', () async {
+      // TODO
+    });
+
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart
new file mode 100644
index 00000000000..f09fa56daa7
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for FooRef
+void main() {
+  final instance = FooRefBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(FooRef, () {
+    // String foorefPropA
+    test('to test the property `foorefPropA`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart
new file mode 100644
index 00000000000..a3ab789b964
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart
@@ -0,0 +1,21 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Foo
+void main() {
+  final instance = FooBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Foo, () {
+    // String fooPropA
+    test('to test the property `fooPropA`', () async {
+      // TODO
+    });
+
+    // String fooPropB
+    test('to test the property `fooPropB`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart
new file mode 100644
index 00000000000..12e61f2db18
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Pasta
+void main() {
+  final instance = PastaBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Pasta, () {
+    // String vendor
+    test('to test the property `vendor`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart
new file mode 100644
index 00000000000..37140088395
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for PizzaSpeziale
+void main() {
+  final instance = PizzaSpezialeBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(PizzaSpeziale, () {
+    // String toppings
+    test('to test the property `toppings`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart
new file mode 100644
index 00000000000..32b0f6a6c3a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Pizza
+void main() {
+  //final instance = PizzaBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Pizza, () {
+    // num pizzaSize
+    test('to test the property `pizzaSize`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.gitignore b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.gitignore
new file mode 100644
index 00000000000..4298cdcbd1a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.gitignore
@@ -0,0 +1,41 @@
+# See https://dart.dev/guides/libraries/private-files
+
+# Files and directories created by pub
+.dart_tool/
+.buildlog
+.packages
+.project
+.pub/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+#  rules if you intend to use dart2js directly
+#  Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+#  differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+
+# Don’t commit files and directories created by other development environments.
+# For example, if your development environment creates any of the following files,
+# consider putting them in a global ignore file:
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Mac
+.DS_Store
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator-ignore b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator-ignore
new file mode 100644
index 00000000000..7484ee590a3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
new file mode 100644
index 00000000000..7f2ac59bf64
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
@@ -0,0 +1,21 @@
+.gitignore
+README.md
+analysis_options.yaml
+doc/Child.md
+doc/DefaultApi.md
+doc/Example.md
+lib/openapi.dart
+lib/src/api.dart
+lib/src/api/default_api.dart
+lib/src/api_util.dart
+lib/src/auth/api_key_auth.dart
+lib/src/auth/auth.dart
+lib/src/auth/basic_auth.dart
+lib/src/auth/bearer_auth.dart
+lib/src/auth/oauth.dart
+lib/src/date_serializer.dart
+lib/src/model/child.dart
+lib/src/model/date.dart
+lib/src/model/example.dart
+lib/src/serializers.dart
+pubspec.yaml
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
new file mode 100644
index 00000000000..5f68295fc19
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
@@ -0,0 +1 @@
+6.0.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/README.md b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/README.md
new file mode 100644
index 00000000000..d73bafd4c64
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/README.md
@@ -0,0 +1,83 @@
+# openapi (EXPERIMENTAL)
+No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 1.0.0
+- Build package: org.openapitools.codegen.languages.DartDioClientCodegen
+
+## Requirements
+
+* Dart 2.12.0 or later OR Flutter 1.26.0 or later
+* Dio 4.0.0+
+
+## Installation & Usage
+
+### pub.dev
+To use the package from [pub.dev](https://pub.dev), please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi: 1.0.0
+```
+
+### Github
+If this Dart package is published to Github, please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi:
+    git:
+      url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+      #ref: main
+```
+
+### Local development
+To use the package from your local drive, please include the following in pubspec.yaml
+```yaml
+dependencies:
+  openapi:
+    path: /path/to/openapi
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```dart
+import 'package:openapi/openapi.dart';
+
+
+final api = Openapi().getDefaultApi();
+
+try {
+    final response = await api.list();
+    print(response);
+} catch on DioError (e) {
+    print("Exception when calling DefaultApi->list: $e\n");
+}
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://api.example.xyz/v1*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+[*DefaultApi*](doc/DefaultApi.md) | [**list**](doc/DefaultApi.md#list) | **GET** /example | 
+
+
+## Documentation For Models
+
+ - [Child](doc/Child.md)
+ - [Example](doc/Example.md)
+
+
+## Documentation For Authorization
+
+ All endpoints do not require authorization.
+
+
+## Author
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/analysis_options.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/analysis_options.yaml
new file mode 100644
index 00000000000..a611887d3ac
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/analysis_options.yaml
@@ -0,0 +1,9 @@
+analyzer:
+  language:
+    strict-inference: true
+    strict-raw-types: true
+  strong-mode:
+    implicit-dynamic: false
+    implicit-casts: false
+  exclude:
+    - test/*.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Child.md b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Child.md
new file mode 100644
index 00000000000..bed0f2feec1
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Child.md
@@ -0,0 +1,15 @@
+# openapi.model.Child
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/DefaultApi.md b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/DefaultApi.md
new file mode 100644
index 00000000000..abbf5f07f49
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/DefaultApi.md
@@ -0,0 +1,51 @@
+# openapi.api.DefaultApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://api.example.xyz/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**list**](DefaultApi.md#list) | **GET** /example | 
+
+
+# **list**
+> Example list()
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getDefaultApi();
+
+try {
+    final response = api.list();
+    print(response);
+} catch on DioError (e) {
+    print('Exception when calling DefaultApi->list: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**Example**](Example.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Example.md b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Example.md
new file mode 100644
index 00000000000..bf49bb137a6
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/doc/Example.md
@@ -0,0 +1,15 @@
+# openapi.model.Example
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/openapi.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/openapi.dart
new file mode 100644
index 00000000000..220621d6961
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/openapi.dart
@@ -0,0 +1,15 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+export 'package:openapi/src/api.dart';
+export 'package:openapi/src/auth/api_key_auth.dart';
+export 'package:openapi/src/auth/basic_auth.dart';
+export 'package:openapi/src/auth/oauth.dart';
+export 'package:openapi/src/serializers.dart';
+export 'package:openapi/src/model/date.dart';
+
+export 'package:openapi/src/api/default_api.dart';
+
+export 'package:openapi/src/model/child.dart';
+export 'package:openapi/src/model/example.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api.dart
new file mode 100644
index 00000000000..776737680d5
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api.dart
@@ -0,0 +1,73 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:built_value/serializer.dart';
+import 'package:openapi/src/serializers.dart';
+import 'package:openapi/src/auth/api_key_auth.dart';
+import 'package:openapi/src/auth/basic_auth.dart';
+import 'package:openapi/src/auth/bearer_auth.dart';
+import 'package:openapi/src/auth/oauth.dart';
+import 'package:openapi/src/api/default_api.dart';
+
+class Openapi {
+  static const String basePath = r'http://api.example.xyz/v1';
+
+  final Dio dio;
+  final Serializers serializers;
+
+  Openapi({
+    Dio? dio,
+    Serializers? serializers,
+    String? basePathOverride,
+    List<Interceptor>? interceptors,
+  })  : this.serializers = serializers ?? standardSerializers,
+        this.dio = dio ??
+            Dio(BaseOptions(
+              baseUrl: basePathOverride ?? basePath,
+              connectTimeout: 5000,
+              receiveTimeout: 3000,
+            )) {
+    if (interceptors == null) {
+      this.dio.interceptors.addAll([
+        OAuthInterceptor(),
+        BasicAuthInterceptor(),
+        BearerAuthInterceptor(),
+        ApiKeyAuthInterceptor(),
+      ]);
+    } else {
+      this.dio.interceptors.addAll(interceptors);
+    }
+  }
+
+  void setOAuthToken(String name, String token) {
+    if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens[name] = token;
+    }
+  }
+
+  void setBearerAuth(String name, String token) {
+    if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
+    }
+  }
+
+  void setBasicAuth(String name, String username, String password) {
+    if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
+    }
+  }
+
+  void setApiKey(String name, String apiKey) {
+    if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
+      (this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
+    }
+  }
+
+  /// Get DefaultApi instance, base route and serializer can be overridden by a given but be careful,
+  /// by doing that all interceptors will not be executed
+  DefaultApi getDefaultApi() {
+    return DefaultApi(dio, serializers);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api/default_api.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api/default_api.dart
new file mode 100644
index 00000000000..8d500cb70aa
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api/default_api.dart
@@ -0,0 +1,92 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:async';
+
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+
+import 'package:openapi/src/model/example.dart';
+
+class DefaultApi {
+
+  final Dio _dio;
+
+  final Serializers _serializers;
+
+  const DefaultApi(this._dio, this._serializers);
+
+  /// list
+  /// 
+  ///
+  /// Parameters:
+  /// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
+  /// * [headers] - Can be used to add additional headers to the request
+  /// * [extras] - Can be used to add flags to the request
+  /// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
+  /// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
+  /// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
+  ///
+  /// Returns a [Future] containing a [Response] with a [Example] as data
+  /// Throws [DioError] if API call or serialization fails
+  Future<Response<Example>> list({ 
+    CancelToken? cancelToken,
+    Map<String, dynamic>? headers,
+    Map<String, dynamic>? extra,
+    ValidateStatus? validateStatus,
+    ProgressCallback? onSendProgress,
+    ProgressCallback? onReceiveProgress,
+  }) async {
+    final _path = r'/example';
+    final _options = Options(
+      method: r'GET',
+      headers: <String, dynamic>{
+        ...?headers,
+      },
+      extra: <String, dynamic>{
+        'secure': <Map<String, String>>[],
+        ...?extra,
+      },
+      validateStatus: validateStatus,
+    );
+
+    final _response = await _dio.request<Object>(
+      _path,
+      options: _options,
+      cancelToken: cancelToken,
+      onSendProgress: onSendProgress,
+      onReceiveProgress: onReceiveProgress,
+    );
+
+    Example _responseData;
+
+    try {
+      const _responseType = FullType(Example);
+      _responseData = _serializers.deserialize(
+        _response.data!,
+        specifiedType: _responseType,
+      ) as Example;
+
+    } catch (error, stackTrace) {
+      throw DioError(
+        requestOptions: _response.requestOptions,
+        response: _response,
+        type: DioErrorType.other,
+        error: error,
+      )..stackTrace = stackTrace;
+    }
+
+    return Response<Example>(
+      data: _responseData,
+      headers: _response.headers,
+      isRedirect: _response.isRedirect,
+      requestOptions: _response.requestOptions,
+      redirects: _response.redirects,
+      statusCode: _response.statusCode,
+      statusMessage: _response.statusMessage,
+      extra: _response.extra,
+    );
+  }
+
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart
new file mode 100644
index 00000000000..e301a95d8e3
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart
@@ -0,0 +1,78 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:convert';
+import 'dart:typed_data';
+
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/serializer.dart';
+import 'package:dio/dio.dart';
+import 'package:dio/src/parameter.dart';
+
+/// Format the given form parameter object into something that Dio can handle.
+/// Returns primitive or String.
+/// Returns List/Map if the value is BuildList/BuiltMap.
+dynamic encodeFormParameter(Serializers serializers, dynamic value, FullType type) {
+  if (value == null) {
+    return '';
+  }
+  if (value is String || value is num || value is bool) {
+    return value;
+  }
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (serialized is String) {
+    return serialized;
+  }
+  if (value is BuiltList || value is BuiltSet || value is BuiltMap) {
+    return serialized;
+  }
+  return json.encode(serialized);
+}
+
+dynamic encodeQueryParameter(
+  Serializers serializers,
+  dynamic value,
+  FullType type,
+) {
+  if (value == null) {
+    return '';
+  }
+  if (value is String || value is num || value is bool) {
+    return value;
+  }
+  if (value is Uint8List) {
+    // Currently not sure how to serialize this
+    return value;
+  }
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (serialized == null) {
+    return '';
+  }
+  if (serialized is String) {
+    return serialized;
+  }
+  return serialized;
+}
+
+ListParam<Object?> encodeCollectionQueryParameter<T>(
+  Serializers serializers,
+  dynamic value,
+  FullType type, {
+  ListFormat format = ListFormat.multi,
+}) {
+  final serialized = serializers.serialize(
+    value as Object,
+    specifiedType: type,
+  );
+  if (value is BuiltList<T> || value is BuiltSet<T>) {
+    return ListParam(List.of((serialized as Iterable<Object?>).cast()), format);
+  }
+  throw ArgumentError('Invalid value passed to encodeCollectionQueryParameter');
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/api_key_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/api_key_auth.dart
new file mode 100644
index 00000000000..ee16e3f0f92
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/api_key_auth.dart
@@ -0,0 +1,30 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class ApiKeyAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> apiKeys = {};
+
+  @override
+  void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'apiKey');
+    for (final info in authInfo) {
+      final authName = info['name'] as String;
+      final authKeyName = info['keyName'] as String;
+      final authWhere = info['where'] as String;
+      final apiKey = apiKeys[authName];
+      if (apiKey != null) {
+        if (authWhere == 'query') {
+          options.queryParameters[authKeyName] = apiKey;
+        } else {
+          options.headers[authKeyName] = apiKey;
+        }
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/auth.dart
new file mode 100644
index 00000000000..f7ae9bf3f11
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/auth.dart
@@ -0,0 +1,18 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+
+abstract class AuthInterceptor extends Interceptor {
+  /// Get auth information on given route for the given type.
+  /// Can return an empty list if type is not present on auth data or
+  /// if route doesn't need authentication.
+  List<Map<String, String>> getAuthInfo(RequestOptions route, bool Function(Map<String, String> secure) handles) {
+    if (route.extra.containsKey('secure')) {
+      final auth = route.extra['secure'] as List<Map<String, String>>;
+      return auth.where((secure) => handles(secure)).toList();
+    }
+    return [];
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/basic_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/basic_auth.dart
new file mode 100644
index 00000000000..b6e6dce04f9
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/basic_auth.dart
@@ -0,0 +1,37 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:convert';
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class BasicAuthInfo {
+  final String username;
+  final String password;
+
+  const BasicAuthInfo(this.username, this.password);
+}
+
+class BasicAuthInterceptor extends AuthInterceptor {
+  final Map<String, BasicAuthInfo> authInfo = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final metadataAuthInfo = getAuthInfo(options, (secure) => (secure['type'] == 'http' && secure['scheme'] == 'basic') || secure['type'] == 'basic');
+    for (final info in metadataAuthInfo) {
+      final authName = info['name'] as String;
+      final basicAuthInfo = authInfo[authName];
+      if (basicAuthInfo != null) {
+        final basicAuth = 'Basic ${base64Encode(utf8.encode('${basicAuthInfo.username}:${basicAuthInfo.password}'))}';
+        options.headers['Authorization'] = basicAuth;
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/bearer_auth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/bearer_auth.dart
new file mode 100644
index 00000000000..1d4402b376c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/bearer_auth.dart
@@ -0,0 +1,26 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class BearerAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> tokens = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'http' && secure['scheme'] == 'bearer');
+    for (final info in authInfo) {
+      final token = tokens[info['name']];
+      if (token != null) {
+        options.headers['Authorization'] = 'Bearer ${token}';
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/oauth.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/oauth.dart
new file mode 100644
index 00000000000..337cf762b0c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/auth/oauth.dart
@@ -0,0 +1,26 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/auth.dart';
+
+class OAuthInterceptor extends AuthInterceptor {
+  final Map<String, String> tokens = {};
+
+  @override
+  void onRequest(
+    RequestOptions options,
+    RequestInterceptorHandler handler,
+  ) {
+    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'oauth' || secure['type'] == 'oauth2');
+    for (final info in authInfo) {
+      final token = tokens[info['name']];
+      if (token != null) {
+        options.headers['Authorization'] = 'Bearer ${token}';
+        break;
+      }
+    }
+    super.onRequest(options, handler);
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/date_serializer.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/date_serializer.dart
new file mode 100644
index 00000000000..db3c5c437db
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/date_serializer.dart
@@ -0,0 +1,31 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/serializer.dart';
+import 'package:openapi/src/model/date.dart';
+
+class DateSerializer implements PrimitiveSerializer<Date> {
+
+  const DateSerializer();
+
+  @override
+  Iterable<Type> get types => BuiltList.of([Date]);
+
+  @override
+  String get wireName => 'Date';
+
+  @override
+  Date deserialize(Serializers serializers, Object serialized,
+      {FullType specifiedType = FullType.unspecified}) {
+    final parsed = DateTime.parse(serialized as String);
+    return Date(parsed.year, parsed.month, parsed.day);
+  }
+
+  @override
+  Object serialize(Serializers serializers, Date date,
+      {FullType specifiedType = FullType.unspecified}) {
+    return date.toString();
+  }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
new file mode 100644
index 00000000000..cb3b213b533
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
@@ -0,0 +1,90 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'child.g.dart';
+
+/// Child
+///
+/// Properties:
+/// * [name] 
+@BuiltValue()
+abstract class Child implements Built<Child, ChildBuilder> {
+    @BuiltValueField(wireName: r'name')
+    String? get name;
+
+
+    Child._();
+    
+    factory Child([void updates(ChildBuilder b)]) = _$Child;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(ChildBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Child> get serializer => _$ChildSerializer();
+
+
+}
+
+class _$ChildSerializer implements PrimitiveSerializer<Child> {
+    @override
+    final Iterable<Type> types = const [Child, _$Child];
+
+    @override
+    final String wireName = r'Child';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Child object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.name != null) {
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, Child object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ChildBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'name':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.name = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Child deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ChildBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/date.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/date.dart
new file mode 100644
index 00000000000..b21c7f544be
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/date.dart
@@ -0,0 +1,70 @@
+/// A gregorian calendar date generated by
+/// OpenAPI generator to differentiate
+/// between [DateTime] and [Date] formats.
+class Date implements Comparable<Date> {
+  final int year;
+
+  /// January is 1.
+  final int month;
+
+  /// First day is 1.
+  final int day;
+
+  Date(this.year, this.month, this.day);
+
+  /// The current date
+  static Date now({bool utc = false}) {
+    var now = DateTime.now();
+    if (utc) {
+      now = now.toUtc();
+    }
+    return now.toDate();
+  }
+
+  /// Convert to a [DateTime].
+  DateTime toDateTime({bool utc = false}) {
+    if (utc) {
+      return DateTime.utc(year, month, day);
+    } else {
+      return DateTime(year, month, day);
+    }
+  }
+
+  @override
+  int compareTo(Date other) {
+    int d = year.compareTo(other.year);
+    if (d != 0) {
+      return d;
+    }
+    d = month.compareTo(other.month);
+    if (d != 0) {
+      return d;
+    }
+    return day.compareTo(other.day);
+  }
+
+  @override
+  bool operator ==(Object other) =>
+      identical(this, other) ||
+      other is Date &&
+          runtimeType == other.runtimeType &&
+          year == other.year &&
+          month == other.month &&
+          day == other.day;
+
+  @override
+  int get hashCode => year.hashCode ^ month.hashCode ^ day.hashCode;
+
+  @override
+  String toString() {
+    final yyyy = year.toString();
+    final mm = month.toString().padLeft(2, '0');
+    final dd = day.toString().padLeft(2, '0');
+
+    return '$yyyy-$mm-$dd';
+  }
+}
+
+extension DateTimeToDate on DateTime {
+  Date toDate() => Date(year, month, day);
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
new file mode 100644
index 00000000000..713811ea335
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
@@ -0,0 +1,71 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:openapi/src/model/child.dart';
+import 'package:built_value/built_value.dart';
+import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
+
+part 'example.g.dart';
+
+/// Example
+///
+/// Properties:
+/// * [name] 
+@BuiltValue()
+abstract class Example implements Built<Example, ExampleBuilder> {
+
+    /// One Of [Child], [int]
+    OneOf get oneOf;
+
+
+    Example._();
+    
+    factory Example([void updates(ExampleBuilder b)]) = _$Example;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(ExampleBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Example> get serializer => _$ExampleSerializer();
+
+
+}
+
+class _$ExampleSerializer implements PrimitiveSerializer<Example> {
+    @override
+    final Iterable<Type> types = const [Example, _$Example];
+
+    @override
+    final String wireName = r'Example';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Example object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+    }
+
+    @override
+    Object serialize(Serializers serializers, Example object,
+        {FullType specifiedType = FullType.unspecified}) {
+        final oneOf = object.oneOf;
+        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+    }
+
+    
+    @override
+    Example deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ExampleBuilder();
+        Object? oneOfDataSrc;
+        final targetType = const FullType(OneOf, [FullType(Child), FullType(int), ]);
+        oneOfDataSrc = serialized;
+        result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
+        return result.build();
+    }
+}
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart
new file mode 100644
index 00000000000..daf5d6f6ec5
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart
@@ -0,0 +1,32 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+// ignore_for_file: unused_import
+
+import 'package:one_of_serializer/any_of_serializer.dart';
+import 'package:one_of_serializer/one_of_serializer.dart';
+import 'package:built_collection/built_collection.dart';
+import 'package:built_value/json_object.dart';
+import 'package:built_value/serializer.dart';
+import 'package:built_value/standard_json_plugin.dart';
+import 'package:built_value/iso_8601_date_time_serializer.dart';
+import 'package:openapi/src/date_serializer.dart';
+import 'package:openapi/src/model/date.dart';
+
+import 'package:openapi/src/model/child.dart';
+import 'package:openapi/src/model/example.dart';
+
+part 'serializers.g.dart';
+
+@SerializersFor([
+  Child,
+  Example,
+])
+Serializers serializers = (_$serializers.toBuilder()
+      ..add(const DateSerializer())
+      ..add(Iso8601DateTimeSerializer()))
+    .build();
+
+Serializers standardSerializers =
+    (serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
new file mode 100644
index 00000000000..7f0fbb9e6bf
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
@@ -0,0 +1,19 @@
+name: openapi
+version: 1.0.0
+description: OpenAPI API client
+homepage: homepage
+
+environment:
+  sdk: '>=2.12.0 <3.0.0'
+
+dependencies:
+  dio: '>=4.0.0 <5.0.0'
+  one_of: '>=1.5.0 <2.0.0'
+  one_of_serializer: '>=1.5.0 <2.0.0'
+  built_value: '>=8.1.0 <9.0.0'
+  built_collection: '>=5.1.0 <6.0.0'
+
+dev_dependencies:
+  built_value_generator: '>=8.1.0 <9.0.0'
+  build_runner: any
+  test: ^1.16.0
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/child_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/child_test.dart
new file mode 100644
index 00000000000..d40451a84c2
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/child_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Child
+void main() {
+  final instance = ChildBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Child, () {
+    // String name
+    test('to test the property `name`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/default_api_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/default_api_test.dart
new file mode 100644
index 00000000000..e4ec5707794
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/default_api_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+
+/// tests for DefaultApi
+void main() {
+  final instance = Openapi().getDefaultApi();
+
+  group(DefaultApi, () {
+    //Future<Example> list() async
+    test('test list', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/example_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/example_test.dart
new file mode 100644
index 00000000000..ccb35121143
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/test/example_test.dart
@@ -0,0 +1,16 @@
+import 'package:test/test.dart';
+import 'package:openapi/openapi.dart';
+
+// tests for Example
+void main() {
+  final instance = ExampleBuilder();
+  // TODO add properties to the builder and call build()
+
+  group(Example, () {
+    // String name
+    test('to test the property `name`', () async {
+      // TODO
+    });
+
+  });
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index 3cecf0f9352..7eebf80d270 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'additional_properties_class.g.dart';
@@ -20,68 +22,79 @@ abstract class AdditionalPropertiesClass implements Built<AdditionalPropertiesCl
     BuiltMap<String, String>? get mapProperty;
     @BuiltValueField(wireName: r'map_of_map_property')
     BuiltMap<String, BuiltMap<String, String>>? get mapOfMapProperty;
+
+
     AdditionalPropertiesClass._();
+    
+    factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(AdditionalPropertiesClassBuilder b) => b;
 
-    factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
-}
 
 
-class _$AdditionalPropertiesClassSerializer implements StructuredSerializer<AdditionalPropertiesClass> {
+}
+
+class _$AdditionalPropertiesClassSerializer implements PrimitiveSerializer<AdditionalPropertiesClass> {
     @override
     final Iterable<Type> types = const [AdditionalPropertiesClass, _$AdditionalPropertiesClass];
 
     @override
     final String wireName = r'AdditionalPropertiesClass';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, AdditionalPropertiesClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, AdditionalPropertiesClass object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.mapProperty != null) {
-            result
-                ..add(r'map_property')
-                ..add(serializers.serialize(object.mapProperty,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])));
+            yield r'map_property';
+            yield serializers.serialize(object.mapProperty,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)]));
         }
         if (object.mapOfMapProperty != null) {
-            result
-                ..add(r'map_of_map_property')
-                ..add(serializers.serialize(object.mapOfMapProperty,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])));
+            yield r'map_of_map_property';
+            yield serializers.serialize(object.mapOfMapProperty,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]));
         }
-        return result;
     }
 
     @override
-    AdditionalPropertiesClass deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, AdditionalPropertiesClass object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = AdditionalPropertiesClassBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'map_property':
+                 case r'map_property':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])) as BuiltMap<String, String>;
                     result.mapProperty.replace(valueDes);
                     break;
-                case r'map_of_map_property':
+                 case r'map_of_map_property':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
                     result.mapOfMapProperty.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    AdditionalPropertiesClass deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = AdditionalPropertiesClassBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index 2f054b91bba..b58940b7063 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -5,6 +5,8 @@
 import 'package:openapi/src/model/single_ref_type.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'all_of_with_single_ref.g.dart';
@@ -20,69 +22,80 @@ abstract class AllOfWithSingleRef implements Built<AllOfWithSingleRef, AllOfWith
     String? get username;
     @BuiltValueField(wireName: r'SingleRefType')
     SingleRefType? get singleRefType;
+
+
     AllOfWithSingleRef._();
+    
+    factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(AllOfWithSingleRefBuilder b) => b;
 
-    factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
-}
 
 
-class _$AllOfWithSingleRefSerializer implements StructuredSerializer<AllOfWithSingleRef> {
+}
+
+class _$AllOfWithSingleRefSerializer implements PrimitiveSerializer<AllOfWithSingleRef> {
     @override
     final Iterable<Type> types = const [AllOfWithSingleRef, _$AllOfWithSingleRef];
 
     @override
     final String wireName = r'AllOfWithSingleRef';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, AllOfWithSingleRef object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, AllOfWithSingleRef object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.username != null) {
-            result
-                ..add(r'username')
-                ..add(serializers.serialize(object.username,
-                    specifiedType: const FullType(String)));
+            yield r'username';
+            yield serializers.serialize(object.username,
+                    specifiedType: const FullType(String));
         }
         if (object.singleRefType != null) {
-            result
-                ..add(r'SingleRefType')
-                ..add(serializers.serialize(object.singleRefType,
-                    specifiedType: const FullType.nullable(SingleRefType)));
+            yield r'SingleRefType';
+            yield serializers.serialize(object.singleRefType,
+                    specifiedType: const FullType.nullable(SingleRefType));
         }
-        return result;
     }
 
     @override
-    AllOfWithSingleRef deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, AllOfWithSingleRef object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = AllOfWithSingleRefBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AllOfWithSingleRefBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'username':
+                 case r'username':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.username = valueDes;
                     break;
-                case r'SingleRefType':
+                 case r'SingleRefType':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(SingleRefType)) as SingleRefType?;
                     if (valueDes == null) continue;
                     result.singleRefType = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    AllOfWithSingleRef deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = AllOfWithSingleRefBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index 6b5c072378d..b8191422710 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -2,10 +2,12 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'dog.dart';
-import 'cat.dart';
+import 'package:openapi/src/model/dog.dart';
+import 'package:openapi/src/model/cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'animal.g.dart';
@@ -19,55 +21,158 @@ part 'animal.g.dart';
 abstract class Animal  {
     @BuiltValueField(wireName: r'className')
     String get className;
-
     @BuiltValueField(wireName: r'color')
     String? get color;
 
+
+    static const String discriminatorFieldName = r'className';
+    static const Map<String, Type> discriminatorMapping = {
+        r'Cat': Cat,
+        r'Dog': Dog,
+    };
+    
+
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(AnimalBuilder b) => b
         ..color = 'red';
 
     @BuiltValueSerializer(custom: true)
-    static StructuredSerializer<Animal> get serializer => _$AnimalSerializer();
+    static Serializer<Animal> get serializer => _$AnimalSerializer();
+
+
 }
 
-class _$AnimalSerializer implements StructuredSerializer<Animal> {
+class _$AnimalSerializer implements PrimitiveSerializer<Animal> {
     @override
     final Iterable<Type> types = const [Animal];
 
     @override
     final String wireName = r'Animal';
 
+    Iterable<Object?> _serializeProperties(Serializers serializers, Animal object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        yield r'className';
+        yield serializers.serialize(object.className,
+                specifiedType: const FullType(String));
+        if (object.color != null) {
+            yield r'color';
+            yield serializers.serialize(object.color,
+                    specifiedType: const FullType(String));
+        }
+    }
+
     @override
-    Iterable<Object?> serialize(Serializers serializers, Animal object,
+    Object serialize(Serializers serializers, Animal object,
         {FullType specifiedType = FullType.unspecified}) {
         if (object is Cat) {
-            final _serializer = Cat.serializer as StructuredSerializer<Cat>;
-            return _serializer.serialize(serializers, object, specifiedType: FullType(Cat));
+            return serializers.serialize(object, specifiedType: FullType(Cat))!;
         }
         if (object is Dog) {
-            final _serializer = Dog.serializer as StructuredSerializer<Dog>;
-            return _serializer.serialize(serializers, object, specifiedType: FullType(Dog));
+            return serializers.serialize(object, specifiedType: FullType(Dog))!;
         }
-
-        throw UnsupportedError('Discriminator not found for type ${object.runtimeType}');
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
     }
 
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AnimalBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'className':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.className = valueDes;
+                    break;
+                 case r'color':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.color = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
     @override
-    Animal deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Animal deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
-        final serializedList = serialized.toList();
-        final discIndex = serializedList.indexOf('className') + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex]).toString();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final discIndex = serializedList.indexOf(Animal.discriminatorFieldName) + 1;
+        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
         switch (discValue) {
-            case 'Cat':
-                final _serializer = Cat.serializer as StructuredSerializer<Cat>;
-                return _serializer.deserialize(serializers, serialized, specifiedType: FullType(Cat));
-            case 'Dog':
-                final _serializer = Dog.serializer as StructuredSerializer<Dog>;
-                return _serializer.deserialize(serializers, serialized, specifiedType: FullType(Dog));
-        }    
-        throw UnsupportedError('Discriminator not found $discValue');
+            case 'Cat':                
+                return serializers.deserialize(serialized, specifiedType: FullType(Cat)) as Cat;
+            case 'Dog':                
+                return serializers.deserialize(serialized, specifiedType: FullType(Dog)) as Dog;
+            default:            
+                return serializers.deserialize(serialized, specifiedType: FullType($Animal)) as $Animal;
+        }
+    }
+}
+
+/// a concrete implmentation of [Animal], since [Animal] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $Animal implements Animal, Built<$Animal, $AnimalBuilder> {
+  $Animal._();
+
+  factory $Animal([void Function($AnimalBuilder)? updates]) = _$$Animal;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($AnimalBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$Animal> get serializer => _$$AnimalSerializer();
+}
+
+class _$$AnimalSerializer implements PrimitiveSerializer<$Animal> {
+    @override
+    final Iterable<Type> types = const [$Animal, _$$Animal];
+
+    @override
+    final String wireName = r'$Animal';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $Animal object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(Animal))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $AnimalBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'className':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.className = valueDes;
+                    break;
+                 case r'color':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.color = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $Animal deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $AnimalBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
     }
 }
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index 89b9dff732a..1795fbb58f8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'api_response.g.dart';
@@ -22,79 +24,89 @@ abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
     String? get type;
     @BuiltValueField(wireName: r'message')
     String? get message;
+
+
     ApiResponse._();
+    
+    factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ApiResponseBuilder b) => b;
 
-    factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ApiResponse> get serializer => _$ApiResponseSerializer();
-}
 
 
-class _$ApiResponseSerializer implements StructuredSerializer<ApiResponse> {
+}
+
+class _$ApiResponseSerializer implements PrimitiveSerializer<ApiResponse> {
     @override
     final Iterable<Type> types = const [ApiResponse, _$ApiResponse];
 
     @override
     final String wireName = r'ApiResponse';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ApiResponse object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ApiResponse object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.code != null) {
-            result
-                ..add(r'code')
-                ..add(serializers.serialize(object.code,
-                    specifiedType: const FullType(int)));
+            yield r'code';
+            yield serializers.serialize(object.code,
+                    specifiedType: const FullType(int));
         }
         if (object.type != null) {
-            result
-                ..add(r'type')
-                ..add(serializers.serialize(object.type,
-                    specifiedType: const FullType(String)));
+            yield r'type';
+            yield serializers.serialize(object.type,
+                    specifiedType: const FullType(String));
         }
         if (object.message != null) {
-            result
-                ..add(r'message')
-                ..add(serializers.serialize(object.message,
-                    specifiedType: const FullType(String)));
+            yield r'message';
+            yield serializers.serialize(object.message,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    ApiResponse deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ApiResponse object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ApiResponseBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ApiResponseBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'code':
+                 case r'code':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.code = valueDes;
                     break;
-                case r'type':
+                 case r'type':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.type = valueDes;
                     break;
-                case r'message':
+                 case r'message':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.message = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ApiResponse deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ApiResponseBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index af2540c8d51..0be24b79d8e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'array_of_array_of_number_only.g.dart';
@@ -17,57 +19,69 @@ part 'array_of_array_of_number_only.g.dart';
 abstract class ArrayOfArrayOfNumberOnly implements Built<ArrayOfArrayOfNumberOnly, ArrayOfArrayOfNumberOnlyBuilder> {
     @BuiltValueField(wireName: r'ArrayArrayNumber')
     BuiltList<BuiltList<num>>? get arrayArrayNumber;
+
+
     ArrayOfArrayOfNumberOnly._();
+    
+    factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ArrayOfArrayOfNumberOnlyBuilder b) => b;
 
-    factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
-}
 
 
-class _$ArrayOfArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfArrayOfNumberOnly> {
+}
+
+class _$ArrayOfArrayOfNumberOnlySerializer implements PrimitiveSerializer<ArrayOfArrayOfNumberOnly> {
     @override
     final Iterable<Type> types = const [ArrayOfArrayOfNumberOnly, _$ArrayOfArrayOfNumberOnly];
 
     @override
     final String wireName = r'ArrayOfArrayOfNumberOnly';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ArrayOfArrayOfNumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ArrayOfArrayOfNumberOnly object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.arrayArrayNumber != null) {
-            result
-                ..add(r'ArrayArrayNumber')
-                ..add(serializers.serialize(object.arrayArrayNumber,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])));
+            yield r'ArrayArrayNumber';
+            yield serializers.serialize(object.arrayArrayNumber,
+                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])]));
         }
-        return result;
     }
 
     @override
-    ArrayOfArrayOfNumberOnly deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ArrayOfArrayOfNumberOnly object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ArrayOfArrayOfNumberOnlyBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'ArrayArrayNumber':
+                 case r'ArrayArrayNumber':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])) as BuiltList<BuiltList<num>>;
                     result.arrayArrayNumber.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ArrayOfArrayOfNumberOnly deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ArrayOfArrayOfNumberOnlyBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index 2286b0db52b..143db3484a2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'array_of_number_only.g.dart';
@@ -17,57 +19,69 @@ part 'array_of_number_only.g.dart';
 abstract class ArrayOfNumberOnly implements Built<ArrayOfNumberOnly, ArrayOfNumberOnlyBuilder> {
     @BuiltValueField(wireName: r'ArrayNumber')
     BuiltList<num>? get arrayNumber;
+
+
     ArrayOfNumberOnly._();
+    
+    factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ArrayOfNumberOnlyBuilder b) => b;
 
-    factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
-}
 
 
-class _$ArrayOfNumberOnlySerializer implements StructuredSerializer<ArrayOfNumberOnly> {
+}
+
+class _$ArrayOfNumberOnlySerializer implements PrimitiveSerializer<ArrayOfNumberOnly> {
     @override
     final Iterable<Type> types = const [ArrayOfNumberOnly, _$ArrayOfNumberOnly];
 
     @override
     final String wireName = r'ArrayOfNumberOnly';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ArrayOfNumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ArrayOfNumberOnly object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.arrayNumber != null) {
-            result
-                ..add(r'ArrayNumber')
-                ..add(serializers.serialize(object.arrayNumber,
-                    specifiedType: const FullType(BuiltList, [FullType(num)])));
+            yield r'ArrayNumber';
+            yield serializers.serialize(object.arrayNumber,
+                    specifiedType: const FullType(BuiltList, [FullType(num)]));
         }
-        return result;
     }
 
     @override
-    ArrayOfNumberOnly deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ArrayOfNumberOnly object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ArrayOfNumberOnlyBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'ArrayNumber':
+                 case r'ArrayNumber':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(num)])) as BuiltList<num>;
                     result.arrayNumber.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ArrayOfNumberOnly deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ArrayOfNumberOnlyBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index bcf7af5db50..f8e5b25a6fb 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/read_only_first.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'array_test.g.dart';
@@ -24,79 +26,89 @@ abstract class ArrayTest implements Built<ArrayTest, ArrayTestBuilder> {
     BuiltList<BuiltList<int>>? get arrayArrayOfInteger;
     @BuiltValueField(wireName: r'array_array_of_model')
     BuiltList<BuiltList<ReadOnlyFirst>>? get arrayArrayOfModel;
+
+
     ArrayTest._();
+    
+    factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ArrayTestBuilder b) => b;
 
-    factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ArrayTest> get serializer => _$ArrayTestSerializer();
-}
 
 
-class _$ArrayTestSerializer implements StructuredSerializer<ArrayTest> {
+}
+
+class _$ArrayTestSerializer implements PrimitiveSerializer<ArrayTest> {
     @override
     final Iterable<Type> types = const [ArrayTest, _$ArrayTest];
 
     @override
     final String wireName = r'ArrayTest';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ArrayTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ArrayTest object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.arrayOfString != null) {
-            result
-                ..add(r'array_of_string')
-                ..add(serializers.serialize(object.arrayOfString,
-                    specifiedType: const FullType(BuiltList, [FullType(String)])));
+            yield r'array_of_string';
+            yield serializers.serialize(object.arrayOfString,
+                    specifiedType: const FullType(BuiltList, [FullType(String)]));
         }
         if (object.arrayArrayOfInteger != null) {
-            result
-                ..add(r'array_array_of_integer')
-                ..add(serializers.serialize(object.arrayArrayOfInteger,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])));
+            yield r'array_array_of_integer';
+            yield serializers.serialize(object.arrayArrayOfInteger,
+                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])]));
         }
         if (object.arrayArrayOfModel != null) {
-            result
-                ..add(r'array_array_of_model')
-                ..add(serializers.serialize(object.arrayArrayOfModel,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])));
+            yield r'array_array_of_model';
+            yield serializers.serialize(object.arrayArrayOfModel,
+                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])]));
         }
-        return result;
     }
 
     @override
-    ArrayTest deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ArrayTest object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ArrayTestBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayTestBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'array_of_string':
+                 case r'array_of_string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
                     result.arrayOfString.replace(valueDes);
                     break;
-                case r'array_array_of_integer':
+                 case r'array_array_of_integer':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList<BuiltList<int>>;
                     result.arrayArrayOfInteger.replace(valueDes);
                     break;
-                case r'array_array_of_model':
+                 case r'array_array_of_model':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList<BuiltList<ReadOnlyFirst>>;
                     result.arrayArrayOfModel.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ArrayTest deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ArrayTestBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index 71fa711a797..06c83ffc718 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'capitalization.g.dart';
@@ -32,112 +34,119 @@ abstract class Capitalization implements Built<Capitalization, CapitalizationBui
     /// Name of the pet 
     @BuiltValueField(wireName: r'ATT_NAME')
     String? get ATT_NAME;
+
+
     Capitalization._();
+    
+    factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(CapitalizationBuilder b) => b;
 
-    factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Capitalization> get serializer => _$CapitalizationSerializer();
-}
 
 
-class _$CapitalizationSerializer implements StructuredSerializer<Capitalization> {
+}
+
+class _$CapitalizationSerializer implements PrimitiveSerializer<Capitalization> {
     @override
     final Iterable<Type> types = const [Capitalization, _$Capitalization];
 
     @override
     final String wireName = r'Capitalization';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Capitalization object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Capitalization object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.smallCamel != null) {
-            result
-                ..add(r'smallCamel')
-                ..add(serializers.serialize(object.smallCamel,
-                    specifiedType: const FullType(String)));
+            yield r'smallCamel';
+            yield serializers.serialize(object.smallCamel,
+                    specifiedType: const FullType(String));
         }
         if (object.capitalCamel != null) {
-            result
-                ..add(r'CapitalCamel')
-                ..add(serializers.serialize(object.capitalCamel,
-                    specifiedType: const FullType(String)));
+            yield r'CapitalCamel';
+            yield serializers.serialize(object.capitalCamel,
+                    specifiedType: const FullType(String));
         }
         if (object.smallSnake != null) {
-            result
-                ..add(r'small_Snake')
-                ..add(serializers.serialize(object.smallSnake,
-                    specifiedType: const FullType(String)));
+            yield r'small_Snake';
+            yield serializers.serialize(object.smallSnake,
+                    specifiedType: const FullType(String));
         }
         if (object.capitalSnake != null) {
-            result
-                ..add(r'Capital_Snake')
-                ..add(serializers.serialize(object.capitalSnake,
-                    specifiedType: const FullType(String)));
+            yield r'Capital_Snake';
+            yield serializers.serialize(object.capitalSnake,
+                    specifiedType: const FullType(String));
         }
         if (object.sCAETHFlowPoints != null) {
-            result
-                ..add(r'SCA_ETH_Flow_Points')
-                ..add(serializers.serialize(object.sCAETHFlowPoints,
-                    specifiedType: const FullType(String)));
+            yield r'SCA_ETH_Flow_Points';
+            yield serializers.serialize(object.sCAETHFlowPoints,
+                    specifiedType: const FullType(String));
         }
         if (object.ATT_NAME != null) {
-            result
-                ..add(r'ATT_NAME')
-                ..add(serializers.serialize(object.ATT_NAME,
-                    specifiedType: const FullType(String)));
+            yield r'ATT_NAME';
+            yield serializers.serialize(object.ATT_NAME,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    Capitalization deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Capitalization object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = CapitalizationBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CapitalizationBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'smallCamel':
+                 case r'smallCamel':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.smallCamel = valueDes;
                     break;
-                case r'CapitalCamel':
+                 case r'CapitalCamel':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.capitalCamel = valueDes;
                     break;
-                case r'small_Snake':
+                 case r'small_Snake':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.smallSnake = valueDes;
                     break;
-                case r'Capital_Snake':
+                 case r'Capital_Snake':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.capitalSnake = valueDes;
                     break;
-                case r'SCA_ETH_Flow_Points':
+                 case r'SCA_ETH_Flow_Points':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.sCAETHFlowPoints = valueDes;
                     break;
-                case r'ATT_NAME':
+                 case r'ATT_NAME':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.ATT_NAME = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Capitalization deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = CapitalizationBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 3b337bc8c1d..cca8194d176 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -6,6 +6,8 @@ import 'package:openapi/src/model/animal.dart';
 import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'cat.g.dart';
@@ -18,78 +20,89 @@ part 'cat.g.dart';
 /// * [declawed] 
 @BuiltValue()
 abstract class Cat implements Animal, CatAllOf, Built<Cat, CatBuilder> {
+
+
+    static const String discriminatorFieldName = r'className';
     Cat._();
+    
+    factory Cat([void updates(CatBuilder b)]) = _$Cat;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(CatBuilder b) => b
         ..color = 'red';
 
-    factory Cat([void updates(CatBuilder b)]) = _$Cat;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Cat> get serializer => _$CatSerializer();
-}
 
 
-class _$CatSerializer implements StructuredSerializer<Cat> {
+}
+
+class _$CatSerializer implements PrimitiveSerializer<Cat> {
     @override
     final Iterable<Type> types = const [Cat, _$Cat];
 
     @override
     final String wireName = r'Cat';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Cat object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        result
-            ..add(r'className')
-            ..add(serializers.serialize(object.className,
-                specifiedType: const FullType(String)));
+    Iterable<Object?> _serializeProperties(Serializers serializers, Cat object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        yield r'className';
+        yield serializers.serialize(object.className,
+                specifiedType: const FullType(String));
         if (object.color != null) {
-            result
-                ..add(r'color')
-                ..add(serializers.serialize(object.color,
-                    specifiedType: const FullType(String)));
+            yield r'color';
+            yield serializers.serialize(object.color,
+                    specifiedType: const FullType(String));
         }
         if (object.declawed != null) {
-            result
-                ..add(r'declawed')
-                ..add(serializers.serialize(object.declawed,
-                    specifiedType: const FullType(bool)));
+            yield r'declawed';
+            yield serializers.serialize(object.declawed,
+                    specifiedType: const FullType(bool));
         }
-        return result;
     }
 
     @override
-    Cat deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Cat object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = CatBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'className':
+                 case r'className':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.className = valueDes;
                     break;
-                case r'color':
+                 case r'color':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.color = valueDes;
                     break;
-                case r'declawed':
+                 case r'declawed':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(bool)) as bool;
                     result.declawed = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Cat deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = CatBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index 77c26707ed5..e1947a2b123 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -2,9 +2,10 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'cat_all_of.g.dart';
@@ -18,11 +19,121 @@ abstract class CatAllOf  {
     @BuiltValueField(wireName: r'declawed')
     bool? get declawed;
 
+
+
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(CatAllOfBuilder b) => b;
 
+    @BuiltValueSerializer(custom: true)
+    static Serializer<CatAllOf> get serializer => _$CatAllOfSerializer();
+
+
+}
+
+class _$CatAllOfSerializer implements PrimitiveSerializer<CatAllOf> {
+    @override
+    final Iterable<Type> types = const [CatAllOf];
+
+    @override
+    final String wireName = r'CatAllOf';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, CatAllOf object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.declawed != null) {
+            yield r'declawed';
+            yield serializers.serialize(object.declawed,
+                    specifiedType: const FullType(bool));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, CatAllOf object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatAllOfBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'declawed':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(bool)) as bool;
+                    result.declawed = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    CatAllOf deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        return serializers.deserialize(serialized, specifiedType: FullType($CatAllOf)) as $CatAllOf;
+    }
 }
 
+/// a concrete implmentation of [CatAllOf], since [CatAllOf] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $CatAllOf implements CatAllOf, Built<$CatAllOf, $CatAllOfBuilder> {
+  $CatAllOf._();
+
+  factory $CatAllOf([void Function($CatAllOfBuilder)? updates]) = _$$CatAllOf;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($CatAllOfBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$CatAllOf> get serializer => _$$CatAllOfSerializer();
+}
+
+class _$$CatAllOfSerializer implements PrimitiveSerializer<$CatAllOf> {
+    @override
+    final Iterable<Type> types = const [$CatAllOf, _$$CatAllOf];
+
+    @override
+    final String wireName = r'$CatAllOf';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $CatAllOf object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(CatAllOf))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $CatAllOfBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'declawed':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(bool)) as bool;
+                    result.declawed = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $CatAllOf deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $CatAllOfBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
 
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index e221a19d923..1072f947671 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'category.g.dart';
@@ -19,67 +21,78 @@ abstract class Category implements Built<Category, CategoryBuilder> {
     int? get id;
     @BuiltValueField(wireName: r'name')
     String get name;
+
+
     Category._();
+    
+    factory Category([void updates(CategoryBuilder b)]) = _$Category;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(CategoryBuilder b) => b
         ..name = 'default-name';
 
-    factory Category([void updates(CategoryBuilder b)]) = _$Category;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Category> get serializer => _$CategorySerializer();
-}
 
 
-class _$CategorySerializer implements StructuredSerializer<Category> {
+}
+
+class _$CategorySerializer implements PrimitiveSerializer<Category> {
     @override
     final Iterable<Type> types = const [Category, _$Category];
 
     @override
     final String wireName = r'Category';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Category object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Category object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.id != null) {
-            result
-                ..add(r'id')
-                ..add(serializers.serialize(object.id,
-                    specifiedType: const FullType(int)));
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(int));
         }
-        result
-            ..add(r'name')
-            ..add(serializers.serialize(object.name,
-                specifiedType: const FullType(String)));
-        return result;
+        yield r'name';
+        yield serializers.serialize(object.name,
+                specifiedType: const FullType(String));
     }
 
     @override
-    Category deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Category object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = CategoryBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CategoryBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'id':
+                 case r'id':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.id = valueDes;
                     break;
-                case r'name':
+                 case r'name':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.name = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Category deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = CategoryBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index 3aeb6a79a69..adb475d6121 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'class_model.g.dart';
@@ -16,57 +18,69 @@ part 'class_model.g.dart';
 abstract class ClassModel implements Built<ClassModel, ClassModelBuilder> {
     @BuiltValueField(wireName: r'_class')
     String? get class_;
+
+
     ClassModel._();
+    
+    factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ClassModelBuilder b) => b;
 
-    factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
-}
 
 
-class _$ClassModelSerializer implements StructuredSerializer<ClassModel> {
+}
+
+class _$ClassModelSerializer implements PrimitiveSerializer<ClassModel> {
     @override
     final Iterable<Type> types = const [ClassModel, _$ClassModel];
 
     @override
     final String wireName = r'ClassModel';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ClassModel object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ClassModel object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.class_ != null) {
-            result
-                ..add(r'_class')
-                ..add(serializers.serialize(object.class_,
-                    specifiedType: const FullType(String)));
+            yield r'_class';
+            yield serializers.serialize(object.class_,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    ClassModel deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ClassModel object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ClassModelBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ClassModelBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'_class':
+                 case r'_class':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.class_ = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ClassModel deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ClassModelBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index 69121ef540a..a1e32c98cd5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'deprecated_object.g.dart';
@@ -16,57 +18,69 @@ part 'deprecated_object.g.dart';
 abstract class DeprecatedObject implements Built<DeprecatedObject, DeprecatedObjectBuilder> {
     @BuiltValueField(wireName: r'name')
     String? get name;
+
+
     DeprecatedObject._();
+    
+    factory DeprecatedObject([void updates(DeprecatedObjectBuilder b)]) = _$DeprecatedObject;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(DeprecatedObjectBuilder b) => b;
 
-    factory DeprecatedObject([void updates(DeprecatedObjectBuilder b)]) = _$DeprecatedObject;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
-}
 
 
-class _$DeprecatedObjectSerializer implements StructuredSerializer<DeprecatedObject> {
+}
+
+class _$DeprecatedObjectSerializer implements PrimitiveSerializer<DeprecatedObject> {
     @override
     final Iterable<Type> types = const [DeprecatedObject, _$DeprecatedObject];
 
     @override
     final String wireName = r'DeprecatedObject';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, DeprecatedObject object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, DeprecatedObject object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.name != null) {
-            result
-                ..add(r'name')
-                ..add(serializers.serialize(object.name,
-                    specifiedType: const FullType(String)));
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    DeprecatedObject deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, DeprecatedObject object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = DeprecatedObjectBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DeprecatedObjectBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'name':
+                 case r'name':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.name = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    DeprecatedObject deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = DeprecatedObjectBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 91ccb6a267a..2c16df6d030 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -6,6 +6,8 @@ import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'dog.g.dart';
@@ -18,78 +20,89 @@ part 'dog.g.dart';
 /// * [breed] 
 @BuiltValue()
 abstract class Dog implements Animal, DogAllOf, Built<Dog, DogBuilder> {
+
+
+    static const String discriminatorFieldName = r'className';
     Dog._();
+    
+    factory Dog([void updates(DogBuilder b)]) = _$Dog;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(DogBuilder b) => b
         ..color = 'red';
 
-    factory Dog([void updates(DogBuilder b)]) = _$Dog;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Dog> get serializer => _$DogSerializer();
-}
 
 
-class _$DogSerializer implements StructuredSerializer<Dog> {
+}
+
+class _$DogSerializer implements PrimitiveSerializer<Dog> {
     @override
     final Iterable<Type> types = const [Dog, _$Dog];
 
     @override
     final String wireName = r'Dog';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Dog object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        result
-            ..add(r'className')
-            ..add(serializers.serialize(object.className,
-                specifiedType: const FullType(String)));
+    Iterable<Object?> _serializeProperties(Serializers serializers, Dog object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        yield r'className';
+        yield serializers.serialize(object.className,
+                specifiedType: const FullType(String));
         if (object.color != null) {
-            result
-                ..add(r'color')
-                ..add(serializers.serialize(object.color,
-                    specifiedType: const FullType(String)));
+            yield r'color';
+            yield serializers.serialize(object.color,
+                    specifiedType: const FullType(String));
         }
         if (object.breed != null) {
-            result
-                ..add(r'breed')
-                ..add(serializers.serialize(object.breed,
-                    specifiedType: const FullType(String)));
+            yield r'breed';
+            yield serializers.serialize(object.breed,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    Dog deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Dog object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = DogBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'className':
+                 case r'className':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.className = valueDes;
                     break;
-                case r'color':
+                 case r'color':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.color = valueDes;
                     break;
-                case r'breed':
+                 case r'breed':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.breed = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Dog deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = DogBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index 38cca9b454e..0e43ee1149c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -2,9 +2,10 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'dog.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'dog_all_of.g.dart';
@@ -18,11 +19,121 @@ abstract class DogAllOf  {
     @BuiltValueField(wireName: r'breed')
     String? get breed;
 
+
+
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(DogAllOfBuilder b) => b;
 
+    @BuiltValueSerializer(custom: true)
+    static Serializer<DogAllOf> get serializer => _$DogAllOfSerializer();
+
+
+}
+
+class _$DogAllOfSerializer implements PrimitiveSerializer<DogAllOf> {
+    @override
+    final Iterable<Type> types = const [DogAllOf];
+
+    @override
+    final String wireName = r'DogAllOf';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, DogAllOf object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.breed != null) {
+            yield r'breed';
+            yield serializers.serialize(object.breed,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, DogAllOf object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogAllOfBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'breed':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.breed = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    DogAllOf deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        return serializers.deserialize(serialized, specifiedType: FullType($DogAllOf)) as $DogAllOf;
+    }
 }
 
+/// a concrete implmentation of [DogAllOf], since [DogAllOf] is not instantiable
+@BuiltValue(instantiable: true)
+abstract class $DogAllOf implements DogAllOf, Built<$DogAllOf, $DogAllOfBuilder> {
+  $DogAllOf._();
+
+  factory $DogAllOf([void Function($DogAllOfBuilder)? updates]) = _$$DogAllOf;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults($DogAllOfBuilder b) => b;
+  @BuiltValueSerializer(custom: true)
+  static Serializer<$DogAllOf> get serializer => _$$DogAllOfSerializer();
+}
+
+class _$$DogAllOfSerializer implements PrimitiveSerializer<$DogAllOf> {
+    @override
+    final Iterable<Type> types = const [$DogAllOf, _$$DogAllOf];
+
+    @override
+    final String wireName = r'$DogAllOf';
+
+
+
+    @override
+    Object serialize(Serializers serializers, $DogAllOf object,
+        {FullType specifiedType = FullType.unspecified}) {        
+        return serializers.serialize(object, specifiedType: FullType(DogAllOf))!;
+    }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $DogAllOfBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'breed':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.breed = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    @override
+    $DogAllOf deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = $DogAllOfBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
+        return result.build();        
+    }
+}
 
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index 1bcef213911..af87206befc 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'enum_arrays.g.dart';
@@ -22,75 +24,85 @@ abstract class EnumArrays implements Built<EnumArrays, EnumArraysBuilder> {
     @BuiltValueField(wireName: r'array_enum')
     BuiltList<EnumArraysArrayEnumEnum>? get arrayEnum;
     // enum arrayEnumEnum {  fish,  crab,  };
+
+
     EnumArrays._();
+    
+    factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(EnumArraysBuilder b) => b;
 
-    factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<EnumArrays> get serializer => _$EnumArraysSerializer();
-}
 
 
-class _$EnumArraysSerializer implements StructuredSerializer<EnumArrays> {
+}
+
+class _$EnumArraysSerializer implements PrimitiveSerializer<EnumArrays> {
     @override
     final Iterable<Type> types = const [EnumArrays, _$EnumArrays];
 
     @override
     final String wireName = r'EnumArrays';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, EnumArrays object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, EnumArrays object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.justSymbol != null) {
-            result
-                ..add(r'just_symbol')
-                ..add(serializers.serialize(object.justSymbol,
-                    specifiedType: const FullType(EnumArraysJustSymbolEnum)));
+            yield r'just_symbol';
+            yield serializers.serialize(object.justSymbol,
+                    specifiedType: const FullType(EnumArraysJustSymbolEnum));
         }
         if (object.arrayEnum != null) {
-            result
-                ..add(r'array_enum')
-                ..add(serializers.serialize(object.arrayEnum,
-                    specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])));
+            yield r'array_enum';
+            yield serializers.serialize(object.arrayEnum,
+                    specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)]));
         }
-        return result;
     }
 
     @override
-    EnumArrays deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, EnumArrays object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = EnumArraysBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumArraysBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'just_symbol':
+                 case r'just_symbol':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(EnumArraysJustSymbolEnum)) as EnumArraysJustSymbolEnum;
                     result.justSymbol = valueDes;
                     break;
-                case r'array_enum':
+                 case r'array_enum':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList<EnumArraysArrayEnumEnum>;
                     result.arrayEnum.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    EnumArrays deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = EnumArraysBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
 
 
 
-
 class EnumArraysJustSymbolEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'>=')
@@ -125,3 +137,4 @@ class EnumArraysArrayEnumEnum extends EnumClass {
   static EnumArraysArrayEnumEnum valueOf(String name) => _$enumArraysArrayEnumEnumValueOf(name);
 }
 
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index 8e21a910e4a..dd904436fa7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -9,6 +9,8 @@ import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:openapi/src/model/outer_enum_integer_default_value.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'enum_test.g.dart';
@@ -50,140 +52,144 @@ abstract class EnumTest implements Built<EnumTest, EnumTestBuilder> {
     @BuiltValueField(wireName: r'outerEnumIntegerDefaultValue')
     OuterEnumIntegerDefaultValue? get outerEnumIntegerDefaultValue;
     // enum outerEnumIntegerDefaultValueEnum {  0,  1,  2,  };
+
+
     EnumTest._();
+    
+    factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(EnumTestBuilder b) => b;
 
-    factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<EnumTest> get serializer => _$EnumTestSerializer();
-}
 
 
-class _$EnumTestSerializer implements StructuredSerializer<EnumTest> {
+}
+
+class _$EnumTestSerializer implements PrimitiveSerializer<EnumTest> {
     @override
     final Iterable<Type> types = const [EnumTest, _$EnumTest];
 
     @override
     final String wireName = r'EnumTest';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, EnumTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, EnumTest object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.enumString != null) {
-            result
-                ..add(r'enum_string')
-                ..add(serializers.serialize(object.enumString,
-                    specifiedType: const FullType(EnumTestEnumStringEnum)));
+            yield r'enum_string';
+            yield serializers.serialize(object.enumString,
+                    specifiedType: const FullType(EnumTestEnumStringEnum));
         }
-        result
-            ..add(r'enum_string_required')
-            ..add(serializers.serialize(object.enumStringRequired,
-                specifiedType: const FullType(EnumTestEnumStringRequiredEnum)));
+        yield r'enum_string_required';
+        yield serializers.serialize(object.enumStringRequired,
+                specifiedType: const FullType(EnumTestEnumStringRequiredEnum));
         if (object.enumInteger != null) {
-            result
-                ..add(r'enum_integer')
-                ..add(serializers.serialize(object.enumInteger,
-                    specifiedType: const FullType(EnumTestEnumIntegerEnum)));
+            yield r'enum_integer';
+            yield serializers.serialize(object.enumInteger,
+                    specifiedType: const FullType(EnumTestEnumIntegerEnum));
         }
         if (object.enumNumber != null) {
-            result
-                ..add(r'enum_number')
-                ..add(serializers.serialize(object.enumNumber,
-                    specifiedType: const FullType(EnumTestEnumNumberEnum)));
+            yield r'enum_number';
+            yield serializers.serialize(object.enumNumber,
+                    specifiedType: const FullType(EnumTestEnumNumberEnum));
         }
         if (object.outerEnum != null) {
-            result
-                ..add(r'outerEnum')
-                ..add(serializers.serialize(object.outerEnum,
-                    specifiedType: const FullType.nullable(OuterEnum)));
+            yield r'outerEnum';
+            yield serializers.serialize(object.outerEnum,
+                    specifiedType: const FullType.nullable(OuterEnum));
         }
         if (object.outerEnumInteger != null) {
-            result
-                ..add(r'outerEnumInteger')
-                ..add(serializers.serialize(object.outerEnumInteger,
-                    specifiedType: const FullType(OuterEnumInteger)));
+            yield r'outerEnumInteger';
+            yield serializers.serialize(object.outerEnumInteger,
+                    specifiedType: const FullType(OuterEnumInteger));
         }
         if (object.outerEnumDefaultValue != null) {
-            result
-                ..add(r'outerEnumDefaultValue')
-                ..add(serializers.serialize(object.outerEnumDefaultValue,
-                    specifiedType: const FullType(OuterEnumDefaultValue)));
+            yield r'outerEnumDefaultValue';
+            yield serializers.serialize(object.outerEnumDefaultValue,
+                    specifiedType: const FullType(OuterEnumDefaultValue));
         }
         if (object.outerEnumIntegerDefaultValue != null) {
-            result
-                ..add(r'outerEnumIntegerDefaultValue')
-                ..add(serializers.serialize(object.outerEnumIntegerDefaultValue,
-                    specifiedType: const FullType(OuterEnumIntegerDefaultValue)));
+            yield r'outerEnumIntegerDefaultValue';
+            yield serializers.serialize(object.outerEnumIntegerDefaultValue,
+                    specifiedType: const FullType(OuterEnumIntegerDefaultValue));
         }
-        return result;
     }
 
     @override
-    EnumTest deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, EnumTest object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = EnumTestBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumTestBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'enum_string':
+                 case r'enum_string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(EnumTestEnumStringEnum)) as EnumTestEnumStringEnum;
                     result.enumString = valueDes;
                     break;
-                case r'enum_string_required':
+                 case r'enum_string_required':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(EnumTestEnumStringRequiredEnum)) as EnumTestEnumStringRequiredEnum;
                     result.enumStringRequired = valueDes;
                     break;
-                case r'enum_integer':
+                 case r'enum_integer':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(EnumTestEnumIntegerEnum)) as EnumTestEnumIntegerEnum;
                     result.enumInteger = valueDes;
                     break;
-                case r'enum_number':
+                 case r'enum_number':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(EnumTestEnumNumberEnum)) as EnumTestEnumNumberEnum;
                     result.enumNumber = valueDes;
                     break;
-                case r'outerEnum':
+                 case r'outerEnum':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(OuterEnum)) as OuterEnum?;
                     if (valueDes == null) continue;
                     result.outerEnum = valueDes;
                     break;
-                case r'outerEnumInteger':
+                 case r'outerEnumInteger':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
                     result.outerEnumInteger = valueDes;
                     break;
-                case r'outerEnumDefaultValue':
+                 case r'outerEnumDefaultValue':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(OuterEnumDefaultValue)) as OuterEnumDefaultValue;
                     result.outerEnumDefaultValue = valueDes;
                     break;
-                case r'outerEnumIntegerDefaultValue':
+                 case r'outerEnumIntegerDefaultValue':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(OuterEnumIntegerDefaultValue)) as OuterEnumIntegerDefaultValue;
                     result.outerEnumIntegerDefaultValue = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    EnumTest deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = EnumTestBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
 
 
 
-
 class EnumTestEnumStringEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'UPPER')
@@ -256,3 +262,4 @@ class EnumTestEnumNumberEnum extends EnumClass {
   static EnumTestEnumNumberEnum valueOf(String name) => _$enumTestEnumNumberEnumValueOf(name);
 }
 
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index 0405b5e395c..2242f8b6046 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/model_file.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'file_schema_test_class.g.dart';
@@ -21,68 +23,79 @@ abstract class FileSchemaTestClass implements Built<FileSchemaTestClass, FileSch
     ModelFile? get file;
     @BuiltValueField(wireName: r'files')
     BuiltList<ModelFile>? get files;
+
+
     FileSchemaTestClass._();
+    
+    factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(FileSchemaTestClassBuilder b) => b;
 
-    factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
-}
 
 
-class _$FileSchemaTestClassSerializer implements StructuredSerializer<FileSchemaTestClass> {
+}
+
+class _$FileSchemaTestClassSerializer implements PrimitiveSerializer<FileSchemaTestClass> {
     @override
     final Iterable<Type> types = const [FileSchemaTestClass, _$FileSchemaTestClass];
 
     @override
     final String wireName = r'FileSchemaTestClass';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, FileSchemaTestClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, FileSchemaTestClass object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.file != null) {
-            result
-                ..add(r'file')
-                ..add(serializers.serialize(object.file,
-                    specifiedType: const FullType(ModelFile)));
+            yield r'file';
+            yield serializers.serialize(object.file,
+                    specifiedType: const FullType(ModelFile));
         }
         if (object.files != null) {
-            result
-                ..add(r'files')
-                ..add(serializers.serialize(object.files,
-                    specifiedType: const FullType(BuiltList, [FullType(ModelFile)])));
+            yield r'files';
+            yield serializers.serialize(object.files,
+                    specifiedType: const FullType(BuiltList, [FullType(ModelFile)]));
         }
-        return result;
     }
 
     @override
-    FileSchemaTestClass deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, FileSchemaTestClass object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = FileSchemaTestClassBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FileSchemaTestClassBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'file':
+                 case r'file':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(ModelFile)) as ModelFile;
                     result.file.replace(valueDes);
                     break;
-                case r'files':
+                 case r'files':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(ModelFile)])) as BuiltList<ModelFile>;
                     result.files.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    FileSchemaTestClass deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FileSchemaTestClassBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index 3dfde6444e9..0b2fad88376 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'foo.g.dart';
@@ -16,58 +18,70 @@ part 'foo.g.dart';
 abstract class Foo implements Built<Foo, FooBuilder> {
     @BuiltValueField(wireName: r'bar')
     String? get bar;
+
+
     Foo._();
+    
+    factory Foo([void updates(FooBuilder b)]) = _$Foo;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(FooBuilder b) => b
         ..bar = 'bar';
 
-    factory Foo([void updates(FooBuilder b)]) = _$Foo;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Foo> get serializer => _$FooSerializer();
-}
 
 
-class _$FooSerializer implements StructuredSerializer<Foo> {
+}
+
+class _$FooSerializer implements PrimitiveSerializer<Foo> {
     @override
     final Iterable<Type> types = const [Foo, _$Foo];
 
     @override
     final String wireName = r'Foo';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Foo object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Foo object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.bar != null) {
-            result
-                ..add(r'bar')
-                ..add(serializers.serialize(object.bar,
-                    specifiedType: const FullType(String)));
+            yield r'bar';
+            yield serializers.serialize(object.bar,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    Foo deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Foo object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = FooBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'bar':
+                 case r'bar':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.bar = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Foo deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FooBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index 035d81bffd5..76fec5d2462 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -6,6 +6,8 @@ import 'dart:typed_data';
 import 'package:openapi/src/model/date.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'format_test.g.dart';
@@ -65,214 +67,211 @@ abstract class FormatTest implements Built<FormatTest, FormatTestBuilder> {
     /// A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
     @BuiltValueField(wireName: r'pattern_with_digits_and_delimiter')
     String? get patternWithDigitsAndDelimiter;
+
+
     FormatTest._();
+    
+    factory FormatTest([void updates(FormatTestBuilder b)]) = _$FormatTest;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(FormatTestBuilder b) => b;
 
-    factory FormatTest([void updates(FormatTestBuilder b)]) = _$FormatTest;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<FormatTest> get serializer => _$FormatTestSerializer();
-}
 
 
-class _$FormatTestSerializer implements StructuredSerializer<FormatTest> {
+}
+
+class _$FormatTestSerializer implements PrimitiveSerializer<FormatTest> {
     @override
     final Iterable<Type> types = const [FormatTest, _$FormatTest];
 
     @override
     final String wireName = r'FormatTest';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, FormatTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, FormatTest object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.integer != null) {
-            result
-                ..add(r'integer')
-                ..add(serializers.serialize(object.integer,
-                    specifiedType: const FullType(int)));
+            yield r'integer';
+            yield serializers.serialize(object.integer,
+                    specifiedType: const FullType(int));
         }
         if (object.int32 != null) {
-            result
-                ..add(r'int32')
-                ..add(serializers.serialize(object.int32,
-                    specifiedType: const FullType(int)));
+            yield r'int32';
+            yield serializers.serialize(object.int32,
+                    specifiedType: const FullType(int));
         }
         if (object.int64 != null) {
-            result
-                ..add(r'int64')
-                ..add(serializers.serialize(object.int64,
-                    specifiedType: const FullType(int)));
+            yield r'int64';
+            yield serializers.serialize(object.int64,
+                    specifiedType: const FullType(int));
         }
-        result
-            ..add(r'number')
-            ..add(serializers.serialize(object.number,
-                specifiedType: const FullType(num)));
+        yield r'number';
+        yield serializers.serialize(object.number,
+                specifiedType: const FullType(num));
         if (object.float != null) {
-            result
-                ..add(r'float')
-                ..add(serializers.serialize(object.float,
-                    specifiedType: const FullType(double)));
+            yield r'float';
+            yield serializers.serialize(object.float,
+                    specifiedType: const FullType(double));
         }
         if (object.double_ != null) {
-            result
-                ..add(r'double')
-                ..add(serializers.serialize(object.double_,
-                    specifiedType: const FullType(double)));
+            yield r'double';
+            yield serializers.serialize(object.double_,
+                    specifiedType: const FullType(double));
         }
         if (object.decimal != null) {
-            result
-                ..add(r'decimal')
-                ..add(serializers.serialize(object.decimal,
-                    specifiedType: const FullType(double)));
+            yield r'decimal';
+            yield serializers.serialize(object.decimal,
+                    specifiedType: const FullType(double));
         }
         if (object.string != null) {
-            result
-                ..add(r'string')
-                ..add(serializers.serialize(object.string,
-                    specifiedType: const FullType(String)));
+            yield r'string';
+            yield serializers.serialize(object.string,
+                    specifiedType: const FullType(String));
         }
-        result
-            ..add(r'byte')
-            ..add(serializers.serialize(object.byte,
-                specifiedType: const FullType(String)));
+        yield r'byte';
+        yield serializers.serialize(object.byte,
+                specifiedType: const FullType(String));
         if (object.binary != null) {
-            result
-                ..add(r'binary')
-                ..add(serializers.serialize(object.binary,
-                    specifiedType: const FullType(Uint8List)));
+            yield r'binary';
+            yield serializers.serialize(object.binary,
+                    specifiedType: const FullType(Uint8List));
         }
-        result
-            ..add(r'date')
-            ..add(serializers.serialize(object.date,
-                specifiedType: const FullType(Date)));
+        yield r'date';
+        yield serializers.serialize(object.date,
+                specifiedType: const FullType(Date));
         if (object.dateTime != null) {
-            result
-                ..add(r'dateTime')
-                ..add(serializers.serialize(object.dateTime,
-                    specifiedType: const FullType(DateTime)));
+            yield r'dateTime';
+            yield serializers.serialize(object.dateTime,
+                    specifiedType: const FullType(DateTime));
         }
         if (object.uuid != null) {
-            result
-                ..add(r'uuid')
-                ..add(serializers.serialize(object.uuid,
-                    specifiedType: const FullType(String)));
+            yield r'uuid';
+            yield serializers.serialize(object.uuid,
+                    specifiedType: const FullType(String));
         }
-        result
-            ..add(r'password')
-            ..add(serializers.serialize(object.password,
-                specifiedType: const FullType(String)));
+        yield r'password';
+        yield serializers.serialize(object.password,
+                specifiedType: const FullType(String));
         if (object.patternWithDigits != null) {
-            result
-                ..add(r'pattern_with_digits')
-                ..add(serializers.serialize(object.patternWithDigits,
-                    specifiedType: const FullType(String)));
+            yield r'pattern_with_digits';
+            yield serializers.serialize(object.patternWithDigits,
+                    specifiedType: const FullType(String));
         }
         if (object.patternWithDigitsAndDelimiter != null) {
-            result
-                ..add(r'pattern_with_digits_and_delimiter')
-                ..add(serializers.serialize(object.patternWithDigitsAndDelimiter,
-                    specifiedType: const FullType(String)));
+            yield r'pattern_with_digits_and_delimiter';
+            yield serializers.serialize(object.patternWithDigitsAndDelimiter,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    FormatTest deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, FormatTest object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = FormatTestBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FormatTestBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'integer':
+                 case r'integer':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.integer = valueDes;
                     break;
-                case r'int32':
+                 case r'int32':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.int32 = valueDes;
                     break;
-                case r'int64':
+                 case r'int64':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.int64 = valueDes;
                     break;
-                case r'number':
+                 case r'number':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(num)) as num;
                     result.number = valueDes;
                     break;
-                case r'float':
+                 case r'float':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(double)) as double;
                     result.float = valueDes;
                     break;
-                case r'double':
+                 case r'double':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(double)) as double;
                     result.double_ = valueDes;
                     break;
-                case r'decimal':
+                 case r'decimal':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(double)) as double;
                     result.decimal = valueDes;
                     break;
-                case r'string':
+                 case r'string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.string = valueDes;
                     break;
-                case r'byte':
+                 case r'byte':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.byte = valueDes;
                     break;
-                case r'binary':
+                 case r'binary':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(Uint8List)) as Uint8List;
                     result.binary = valueDes;
                     break;
-                case r'date':
+                 case r'date':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(Date)) as Date;
                     result.date = valueDes;
                     break;
-                case r'dateTime':
+                 case r'dateTime':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(DateTime)) as DateTime;
                     result.dateTime = valueDes;
                     break;
-                case r'uuid':
+                 case r'uuid':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.uuid = valueDes;
                     break;
-                case r'password':
+                 case r'password':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.password = valueDes;
                     break;
-                case r'pattern_with_digits':
+                 case r'pattern_with_digits':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.patternWithDigits = valueDes;
                     break;
-                case r'pattern_with_digits_and_delimiter':
+                 case r'pattern_with_digits_and_delimiter':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.patternWithDigitsAndDelimiter = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    FormatTest deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FormatTestBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index d8b8112c4ef..36633e7e056 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'has_only_read_only.g.dart';
@@ -19,68 +21,79 @@ abstract class HasOnlyReadOnly implements Built<HasOnlyReadOnly, HasOnlyReadOnly
     String? get bar;
     @BuiltValueField(wireName: r'foo')
     String? get foo;
+
+
     HasOnlyReadOnly._();
+    
+    factory HasOnlyReadOnly([void updates(HasOnlyReadOnlyBuilder b)]) = _$HasOnlyReadOnly;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(HasOnlyReadOnlyBuilder b) => b;
 
-    factory HasOnlyReadOnly([void updates(HasOnlyReadOnlyBuilder b)]) = _$HasOnlyReadOnly;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
-}
 
 
-class _$HasOnlyReadOnlySerializer implements StructuredSerializer<HasOnlyReadOnly> {
+}
+
+class _$HasOnlyReadOnlySerializer implements PrimitiveSerializer<HasOnlyReadOnly> {
     @override
     final Iterable<Type> types = const [HasOnlyReadOnly, _$HasOnlyReadOnly];
 
     @override
     final String wireName = r'HasOnlyReadOnly';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, HasOnlyReadOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, HasOnlyReadOnly object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.bar != null) {
-            result
-                ..add(r'bar')
-                ..add(serializers.serialize(object.bar,
-                    specifiedType: const FullType(String)));
+            yield r'bar';
+            yield serializers.serialize(object.bar,
+                    specifiedType: const FullType(String));
         }
         if (object.foo != null) {
-            result
-                ..add(r'foo')
-                ..add(serializers.serialize(object.foo,
-                    specifiedType: const FullType(String)));
+            yield r'foo';
+            yield serializers.serialize(object.foo,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    HasOnlyReadOnly deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, HasOnlyReadOnly object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = HasOnlyReadOnlyBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HasOnlyReadOnlyBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'bar':
+                 case r'bar':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.bar = valueDes;
                     break;
-                case r'foo':
+                 case r'foo':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.foo = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    HasOnlyReadOnly deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = HasOnlyReadOnlyBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index 44c01670c4f..3dbe163ee7e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'health_check_result.g.dart';
@@ -16,58 +18,70 @@ part 'health_check_result.g.dart';
 abstract class HealthCheckResult implements Built<HealthCheckResult, HealthCheckResultBuilder> {
     @BuiltValueField(wireName: r'NullableMessage')
     String? get nullableMessage;
+
+
     HealthCheckResult._();
+    
+    factory HealthCheckResult([void updates(HealthCheckResultBuilder b)]) = _$HealthCheckResult;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(HealthCheckResultBuilder b) => b;
 
-    factory HealthCheckResult([void updates(HealthCheckResultBuilder b)]) = _$HealthCheckResult;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
-}
 
 
-class _$HealthCheckResultSerializer implements StructuredSerializer<HealthCheckResult> {
+}
+
+class _$HealthCheckResultSerializer implements PrimitiveSerializer<HealthCheckResult> {
     @override
     final Iterable<Type> types = const [HealthCheckResult, _$HealthCheckResult];
 
     @override
     final String wireName = r'HealthCheckResult';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, HealthCheckResult object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, HealthCheckResult object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.nullableMessage != null) {
-            result
-                ..add(r'NullableMessage')
-                ..add(serializers.serialize(object.nullableMessage,
-                    specifiedType: const FullType.nullable(String)));
+            yield r'NullableMessage';
+            yield serializers.serialize(object.nullableMessage,
+                    specifiedType: const FullType.nullable(String));
         }
-        return result;
     }
 
     @override
-    HealthCheckResult deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, HealthCheckResult object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = HealthCheckResultBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HealthCheckResultBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'NullableMessage':
+                 case r'NullableMessage':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(String)) as String?;
                     if (valueDes == null) continue;
                     result.nullableMessage = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    HealthCheckResult deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = HealthCheckResultBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
index 464ffaef16c..74d5ed70f1e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/inline_response_default.dart
@@ -5,6 +5,8 @@
 import 'package:openapi/src/model/foo.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'inline_response_default.g.dart';
@@ -17,57 +19,69 @@ part 'inline_response_default.g.dart';
 abstract class InlineResponseDefault implements Built<InlineResponseDefault, InlineResponseDefaultBuilder> {
     @BuiltValueField(wireName: r'string')
     Foo? get string;
+
+
     InlineResponseDefault._();
+    
+    factory InlineResponseDefault([void updates(InlineResponseDefaultBuilder b)]) = _$InlineResponseDefault;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(InlineResponseDefaultBuilder b) => b;
 
-    factory InlineResponseDefault([void updates(InlineResponseDefaultBuilder b)]) = _$InlineResponseDefault;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<InlineResponseDefault> get serializer => _$InlineResponseDefaultSerializer();
-}
 
 
-class _$InlineResponseDefaultSerializer implements StructuredSerializer<InlineResponseDefault> {
+}
+
+class _$InlineResponseDefaultSerializer implements PrimitiveSerializer<InlineResponseDefault> {
     @override
     final Iterable<Type> types = const [InlineResponseDefault, _$InlineResponseDefault];
 
     @override
     final String wireName = r'InlineResponseDefault';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, InlineResponseDefault object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, InlineResponseDefault object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.string != null) {
-            result
-                ..add(r'string')
-                ..add(serializers.serialize(object.string,
-                    specifiedType: const FullType(Foo)));
+            yield r'string';
+            yield serializers.serialize(object.string,
+                    specifiedType: const FullType(Foo));
         }
-        return result;
     }
 
     @override
-    InlineResponseDefault deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, InlineResponseDefault object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = InlineResponseDefaultBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required InlineResponseDefaultBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'string':
+                 case r'string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(Foo)) as Foo;
                     result.string.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    InlineResponseDefault deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = InlineResponseDefaultBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index f2f81060645..bd0fc8915c3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'map_test.g.dart';
@@ -27,97 +29,105 @@ abstract class MapTest implements Built<MapTest, MapTestBuilder> {
     BuiltMap<String, bool>? get directMap;
     @BuiltValueField(wireName: r'indirect_map')
     BuiltMap<String, bool>? get indirectMap;
+
+
     MapTest._();
+    
+    factory MapTest([void updates(MapTestBuilder b)]) = _$MapTest;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(MapTestBuilder b) => b;
 
-    factory MapTest([void updates(MapTestBuilder b)]) = _$MapTest;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<MapTest> get serializer => _$MapTestSerializer();
-}
 
 
-class _$MapTestSerializer implements StructuredSerializer<MapTest> {
+}
+
+class _$MapTestSerializer implements PrimitiveSerializer<MapTest> {
     @override
     final Iterable<Type> types = const [MapTest, _$MapTest];
 
     @override
     final String wireName = r'MapTest';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, MapTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, MapTest object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.mapMapOfString != null) {
-            result
-                ..add(r'map_map_of_string')
-                ..add(serializers.serialize(object.mapMapOfString,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])));
+            yield r'map_map_of_string';
+            yield serializers.serialize(object.mapMapOfString,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]));
         }
         if (object.mapOfEnumString != null) {
-            result
-                ..add(r'map_of_enum_string')
-                ..add(serializers.serialize(object.mapOfEnumString,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])));
+            yield r'map_of_enum_string';
+            yield serializers.serialize(object.mapOfEnumString,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)]));
         }
         if (object.directMap != null) {
-            result
-                ..add(r'direct_map')
-                ..add(serializers.serialize(object.directMap,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])));
+            yield r'direct_map';
+            yield serializers.serialize(object.directMap,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]));
         }
         if (object.indirectMap != null) {
-            result
-                ..add(r'indirect_map')
-                ..add(serializers.serialize(object.indirectMap,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])));
+            yield r'indirect_map';
+            yield serializers.serialize(object.indirectMap,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]));
         }
-        return result;
     }
 
     @override
-    MapTest deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, MapTest object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = MapTestBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MapTestBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'map_map_of_string':
+                 case r'map_map_of_string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
                     result.mapMapOfString.replace(valueDes);
                     break;
-                case r'map_of_enum_string':
+                 case r'map_of_enum_string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])) as BuiltMap<String, MapTestMapOfEnumStringEnum>;
                     result.mapOfEnumString.replace(valueDes);
                     break;
-                case r'direct_map':
+                 case r'direct_map':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
                     result.directMap.replace(valueDes);
                     break;
-                case r'indirect_map':
+                 case r'indirect_map':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
                     result.indirectMap.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    MapTest deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = MapTestBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
 
 
 
-
 class MapTestMapOfEnumStringEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'UPPER')
@@ -135,3 +145,4 @@ class MapTestMapOfEnumStringEnum extends EnumClass {
   static MapTestMapOfEnumStringEnum valueOf(String name) => _$mapTestMapOfEnumStringEnumValueOf(name);
 }
 
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 5744f3f24d8..03f60079083 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'mixed_properties_and_additional_properties_class.g.dart';
@@ -24,79 +26,89 @@ abstract class MixedPropertiesAndAdditionalPropertiesClass implements Built<Mixe
     DateTime? get dateTime;
     @BuiltValueField(wireName: r'map')
     BuiltMap<String, Animal>? get map;
+
+
     MixedPropertiesAndAdditionalPropertiesClass._();
+    
+    factory MixedPropertiesAndAdditionalPropertiesClass([void updates(MixedPropertiesAndAdditionalPropertiesClassBuilder b)]) = _$MixedPropertiesAndAdditionalPropertiesClass;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(MixedPropertiesAndAdditionalPropertiesClassBuilder b) => b;
 
-    factory MixedPropertiesAndAdditionalPropertiesClass([void updates(MixedPropertiesAndAdditionalPropertiesClassBuilder b)]) = _$MixedPropertiesAndAdditionalPropertiesClass;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
-}
 
 
-class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements StructuredSerializer<MixedPropertiesAndAdditionalPropertiesClass> {
+}
+
+class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements PrimitiveSerializer<MixedPropertiesAndAdditionalPropertiesClass> {
     @override
     final Iterable<Type> types = const [MixedPropertiesAndAdditionalPropertiesClass, _$MixedPropertiesAndAdditionalPropertiesClass];
 
     @override
     final String wireName = r'MixedPropertiesAndAdditionalPropertiesClass';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, MixedPropertiesAndAdditionalPropertiesClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, MixedPropertiesAndAdditionalPropertiesClass object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.uuid != null) {
-            result
-                ..add(r'uuid')
-                ..add(serializers.serialize(object.uuid,
-                    specifiedType: const FullType(String)));
+            yield r'uuid';
+            yield serializers.serialize(object.uuid,
+                    specifiedType: const FullType(String));
         }
         if (object.dateTime != null) {
-            result
-                ..add(r'dateTime')
-                ..add(serializers.serialize(object.dateTime,
-                    specifiedType: const FullType(DateTime)));
+            yield r'dateTime';
+            yield serializers.serialize(object.dateTime,
+                    specifiedType: const FullType(DateTime));
         }
         if (object.map != null) {
-            result
-                ..add(r'map')
-                ..add(serializers.serialize(object.map,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])));
+            yield r'map';
+            yield serializers.serialize(object.map,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)]));
         }
-        return result;
     }
 
     @override
-    MixedPropertiesAndAdditionalPropertiesClass deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, MixedPropertiesAndAdditionalPropertiesClass object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = MixedPropertiesAndAdditionalPropertiesClassBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MixedPropertiesAndAdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'uuid':
+                 case r'uuid':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.uuid = valueDes;
                     break;
-                case r'dateTime':
+                 case r'dateTime':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(DateTime)) as DateTime;
                     result.dateTime = valueDes;
                     break;
-                case r'map':
+                 case r'map':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])) as BuiltMap<String, Animal>;
                     result.map.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    MixedPropertiesAndAdditionalPropertiesClass deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = MixedPropertiesAndAdditionalPropertiesClassBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 6a211684ede..e2089a669e6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'model200_response.g.dart';
@@ -19,68 +21,79 @@ abstract class Model200Response implements Built<Model200Response, Model200Respo
     int? get name;
     @BuiltValueField(wireName: r'class')
     String? get class_;
+
+
     Model200Response._();
+    
+    factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(Model200ResponseBuilder b) => b;
 
-    factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Model200Response> get serializer => _$Model200ResponseSerializer();
-}
 
 
-class _$Model200ResponseSerializer implements StructuredSerializer<Model200Response> {
+}
+
+class _$Model200ResponseSerializer implements PrimitiveSerializer<Model200Response> {
     @override
     final Iterable<Type> types = const [Model200Response, _$Model200Response];
 
     @override
     final String wireName = r'Model200Response';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Model200Response object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Model200Response object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.name != null) {
-            result
-                ..add(r'name')
-                ..add(serializers.serialize(object.name,
-                    specifiedType: const FullType(int)));
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(int));
         }
         if (object.class_ != null) {
-            result
-                ..add(r'class')
-                ..add(serializers.serialize(object.class_,
-                    specifiedType: const FullType(String)));
+            yield r'class';
+            yield serializers.serialize(object.class_,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    Model200Response deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Model200Response object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = Model200ResponseBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required Model200ResponseBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'name':
+                 case r'name':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.name = valueDes;
                     break;
-                case r'class':
+                 case r'class':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.class_ = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Model200Response deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = Model200ResponseBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 827fa68bb59..374acfb8714 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'model_client.g.dart';
@@ -16,57 +18,69 @@ part 'model_client.g.dart';
 abstract class ModelClient implements Built<ModelClient, ModelClientBuilder> {
     @BuiltValueField(wireName: r'client')
     String? get client;
+
+
     ModelClient._();
+    
+    factory ModelClient([void updates(ModelClientBuilder b)]) = _$ModelClient;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ModelClientBuilder b) => b;
 
-    factory ModelClient([void updates(ModelClientBuilder b)]) = _$ModelClient;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ModelClient> get serializer => _$ModelClientSerializer();
-}
 
 
-class _$ModelClientSerializer implements StructuredSerializer<ModelClient> {
+}
+
+class _$ModelClientSerializer implements PrimitiveSerializer<ModelClient> {
     @override
     final Iterable<Type> types = const [ModelClient, _$ModelClient];
 
     @override
     final String wireName = r'ModelClient';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ModelClient object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ModelClient object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.client != null) {
-            result
-                ..add(r'client')
-                ..add(serializers.serialize(object.client,
-                    specifiedType: const FullType(String)));
+            yield r'client';
+            yield serializers.serialize(object.client,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    ModelClient deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ModelClient object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelClientBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelClientBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'client':
+                 case r'client':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.client = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ModelClient deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ModelClientBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index 01e9809f269..553f9e79360 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'model_file.g.dart';
@@ -17,57 +19,69 @@ abstract class ModelFile implements Built<ModelFile, ModelFileBuilder> {
     /// Test capitalization
     @BuiltValueField(wireName: r'sourceURI')
     String? get sourceURI;
+
+
     ModelFile._();
+    
+    factory ModelFile([void updates(ModelFileBuilder b)]) = _$ModelFile;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ModelFileBuilder b) => b;
 
-    factory ModelFile([void updates(ModelFileBuilder b)]) = _$ModelFile;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ModelFile> get serializer => _$ModelFileSerializer();
-}
 
 
-class _$ModelFileSerializer implements StructuredSerializer<ModelFile> {
+}
+
+class _$ModelFileSerializer implements PrimitiveSerializer<ModelFile> {
     @override
     final Iterable<Type> types = const [ModelFile, _$ModelFile];
 
     @override
     final String wireName = r'ModelFile';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ModelFile object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ModelFile object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.sourceURI != null) {
-            result
-                ..add(r'sourceURI')
-                ..add(serializers.serialize(object.sourceURI,
-                    specifiedType: const FullType(String)));
+            yield r'sourceURI';
+            yield serializers.serialize(object.sourceURI,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    ModelFile deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ModelFile object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelFileBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelFileBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'sourceURI':
+                 case r'sourceURI':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.sourceURI = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ModelFile deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ModelFileBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index 1b3aef1dc9e..32a63258873 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'model_list.g.dart';
@@ -16,57 +18,69 @@ part 'model_list.g.dart';
 abstract class ModelList implements Built<ModelList, ModelListBuilder> {
     @BuiltValueField(wireName: r'123-list')
     String? get n123list;
+
+
     ModelList._();
+    
+    factory ModelList([void updates(ModelListBuilder b)]) = _$ModelList;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ModelListBuilder b) => b;
 
-    factory ModelList([void updates(ModelListBuilder b)]) = _$ModelList;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ModelList> get serializer => _$ModelListSerializer();
-}
 
 
-class _$ModelListSerializer implements StructuredSerializer<ModelList> {
+}
+
+class _$ModelListSerializer implements PrimitiveSerializer<ModelList> {
     @override
     final Iterable<Type> types = const [ModelList, _$ModelList];
 
     @override
     final String wireName = r'ModelList';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ModelList object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ModelList object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.n123list != null) {
-            result
-                ..add(r'123-list')
-                ..add(serializers.serialize(object.n123list,
-                    specifiedType: const FullType(String)));
+            yield r'123-list';
+            yield serializers.serialize(object.n123list,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    ModelList deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ModelList object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelListBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelListBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'123-list':
+                 case r'123-list':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.n123list = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ModelList deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ModelListBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index d2d9fc793c0..c31c0743363 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'model_return.g.dart';
@@ -16,57 +18,69 @@ part 'model_return.g.dart';
 abstract class ModelReturn implements Built<ModelReturn, ModelReturnBuilder> {
     @BuiltValueField(wireName: r'return')
     int? get return_;
+
+
     ModelReturn._();
+    
+    factory ModelReturn([void updates(ModelReturnBuilder b)]) = _$ModelReturn;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ModelReturnBuilder b) => b;
 
-    factory ModelReturn([void updates(ModelReturnBuilder b)]) = _$ModelReturn;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ModelReturn> get serializer => _$ModelReturnSerializer();
-}
 
 
-class _$ModelReturnSerializer implements StructuredSerializer<ModelReturn> {
+}
+
+class _$ModelReturnSerializer implements PrimitiveSerializer<ModelReturn> {
     @override
     final Iterable<Type> types = const [ModelReturn, _$ModelReturn];
 
     @override
     final String wireName = r'ModelReturn';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ModelReturn object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ModelReturn object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.return_ != null) {
-            result
-                ..add(r'return')
-                ..add(serializers.serialize(object.return_,
-                    specifiedType: const FullType(int)));
+            yield r'return';
+            yield serializers.serialize(object.return_,
+                    specifiedType: const FullType(int));
         }
-        return result;
     }
 
     @override
-    ModelReturn deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ModelReturn object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelReturnBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelReturnBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'return':
+                 case r'return':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.return_ = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ModelReturn deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ModelReturnBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index 1bbd3f0edee..b007e6058ba 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'name.g.dart';
@@ -25,88 +27,97 @@ abstract class Name implements Built<Name, NameBuilder> {
     String? get property;
     @BuiltValueField(wireName: r'123Number')
     int? get n123number;
+
+
     Name._();
+    
+    factory Name([void updates(NameBuilder b)]) = _$Name;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(NameBuilder b) => b;
 
-    factory Name([void updates(NameBuilder b)]) = _$Name;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Name> get serializer => _$NameSerializer();
-}
 
 
-class _$NameSerializer implements StructuredSerializer<Name> {
+}
+
+class _$NameSerializer implements PrimitiveSerializer<Name> {
     @override
     final Iterable<Type> types = const [Name, _$Name];
 
     @override
     final String wireName = r'Name';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Name object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        result
-            ..add(r'name')
-            ..add(serializers.serialize(object.name,
-                specifiedType: const FullType(int)));
+    Iterable<Object?> _serializeProperties(Serializers serializers, Name object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        yield r'name';
+        yield serializers.serialize(object.name,
+                specifiedType: const FullType(int));
         if (object.snakeCase != null) {
-            result
-                ..add(r'snake_case')
-                ..add(serializers.serialize(object.snakeCase,
-                    specifiedType: const FullType(int)));
+            yield r'snake_case';
+            yield serializers.serialize(object.snakeCase,
+                    specifiedType: const FullType(int));
         }
         if (object.property != null) {
-            result
-                ..add(r'property')
-                ..add(serializers.serialize(object.property,
-                    specifiedType: const FullType(String)));
+            yield r'property';
+            yield serializers.serialize(object.property,
+                    specifiedType: const FullType(String));
         }
         if (object.n123number != null) {
-            result
-                ..add(r'123Number')
-                ..add(serializers.serialize(object.n123number,
-                    specifiedType: const FullType(int)));
+            yield r'123Number';
+            yield serializers.serialize(object.n123number,
+                    specifiedType: const FullType(int));
         }
-        return result;
     }
 
     @override
-    Name deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Name object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = NameBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NameBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'name':
+                 case r'name':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.name = valueDes;
                     break;
-                case r'snake_case':
+                 case r'snake_case':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.snakeCase = valueDes;
                     break;
-                case r'property':
+                 case r'property':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.property = valueDes;
                     break;
-                case r'123Number':
+                 case r'123Number':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.n123number = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Name deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = NameBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index 3bb500d878c..0ee1dbdb462 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -7,6 +7,8 @@ import 'package:openapi/src/model/date.dart';
 import 'package:built_value/json_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'nullable_class.g.dart';
@@ -52,188 +54,189 @@ abstract class NullableClass implements Built<NullableClass, NullableClassBuilde
     BuiltMap<String, JsonObject?>? get objectAndItemsNullableProp;
     @BuiltValueField(wireName: r'object_items_nullable')
     BuiltMap<String, JsonObject?>? get objectItemsNullable;
+
+
     NullableClass._();
+    
+    factory NullableClass([void updates(NullableClassBuilder b)]) = _$NullableClass;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(NullableClassBuilder b) => b;
 
-    factory NullableClass([void updates(NullableClassBuilder b)]) = _$NullableClass;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<NullableClass> get serializer => _$NullableClassSerializer();
-}
 
 
-class _$NullableClassSerializer implements StructuredSerializer<NullableClass> {
+}
+
+class _$NullableClassSerializer implements PrimitiveSerializer<NullableClass> {
     @override
     final Iterable<Type> types = const [NullableClass, _$NullableClass];
 
     @override
     final String wireName = r'NullableClass';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, NullableClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, NullableClass object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.integerProp != null) {
-            result
-                ..add(r'integer_prop')
-                ..add(serializers.serialize(object.integerProp,
-                    specifiedType: const FullType.nullable(int)));
+            yield r'integer_prop';
+            yield serializers.serialize(object.integerProp,
+                    specifiedType: const FullType.nullable(int));
         }
         if (object.numberProp != null) {
-            result
-                ..add(r'number_prop')
-                ..add(serializers.serialize(object.numberProp,
-                    specifiedType: const FullType.nullable(num)));
+            yield r'number_prop';
+            yield serializers.serialize(object.numberProp,
+                    specifiedType: const FullType.nullable(num));
         }
         if (object.booleanProp != null) {
-            result
-                ..add(r'boolean_prop')
-                ..add(serializers.serialize(object.booleanProp,
-                    specifiedType: const FullType.nullable(bool)));
+            yield r'boolean_prop';
+            yield serializers.serialize(object.booleanProp,
+                    specifiedType: const FullType.nullable(bool));
         }
         if (object.stringProp != null) {
-            result
-                ..add(r'string_prop')
-                ..add(serializers.serialize(object.stringProp,
-                    specifiedType: const FullType.nullable(String)));
+            yield r'string_prop';
+            yield serializers.serialize(object.stringProp,
+                    specifiedType: const FullType.nullable(String));
         }
         if (object.dateProp != null) {
-            result
-                ..add(r'date_prop')
-                ..add(serializers.serialize(object.dateProp,
-                    specifiedType: const FullType.nullable(Date)));
+            yield r'date_prop';
+            yield serializers.serialize(object.dateProp,
+                    specifiedType: const FullType.nullable(Date));
         }
         if (object.datetimeProp != null) {
-            result
-                ..add(r'datetime_prop')
-                ..add(serializers.serialize(object.datetimeProp,
-                    specifiedType: const FullType.nullable(DateTime)));
+            yield r'datetime_prop';
+            yield serializers.serialize(object.datetimeProp,
+                    specifiedType: const FullType.nullable(DateTime));
         }
         if (object.arrayNullableProp != null) {
-            result
-                ..add(r'array_nullable_prop')
-                ..add(serializers.serialize(object.arrayNullableProp,
-                    specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)])));
+            yield r'array_nullable_prop';
+            yield serializers.serialize(object.arrayNullableProp,
+                    specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)]));
         }
         if (object.arrayAndItemsNullableProp != null) {
-            result
-                ..add(r'array_and_items_nullable_prop')
-                ..add(serializers.serialize(object.arrayAndItemsNullableProp,
-                    specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)])));
+            yield r'array_and_items_nullable_prop';
+            yield serializers.serialize(object.arrayAndItemsNullableProp,
+                    specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)]));
         }
         if (object.arrayItemsNullable != null) {
-            result
-                ..add(r'array_items_nullable')
-                ..add(serializers.serialize(object.arrayItemsNullable,
-                    specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)])));
+            yield r'array_items_nullable';
+            yield serializers.serialize(object.arrayItemsNullable,
+                    specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)]));
         }
         if (object.objectNullableProp != null) {
-            result
-                ..add(r'object_nullable_prop')
-                ..add(serializers.serialize(object.objectNullableProp,
-                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)])));
+            yield r'object_nullable_prop';
+            yield serializers.serialize(object.objectNullableProp,
+                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)]));
         }
         if (object.objectAndItemsNullableProp != null) {
-            result
-                ..add(r'object_and_items_nullable_prop')
-                ..add(serializers.serialize(object.objectAndItemsNullableProp,
-                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])));
+            yield r'object_and_items_nullable_prop';
+            yield serializers.serialize(object.objectAndItemsNullableProp,
+                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]));
         }
         if (object.objectItemsNullable != null) {
-            result
-                ..add(r'object_items_nullable')
-                ..add(serializers.serialize(object.objectItemsNullable,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])));
+            yield r'object_items_nullable';
+            yield serializers.serialize(object.objectItemsNullable,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]));
         }
-        return result;
     }
 
     @override
-    NullableClass deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, NullableClass object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = NullableClassBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NullableClassBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'integer_prop':
+                 case r'integer_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(int)) as int?;
                     if (valueDes == null) continue;
                     result.integerProp = valueDes;
                     break;
-                case r'number_prop':
+                 case r'number_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(num)) as num?;
                     if (valueDes == null) continue;
                     result.numberProp = valueDes;
                     break;
-                case r'boolean_prop':
+                 case r'boolean_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(bool)) as bool?;
                     if (valueDes == null) continue;
                     result.booleanProp = valueDes;
                     break;
-                case r'string_prop':
+                 case r'string_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(String)) as String?;
                     if (valueDes == null) continue;
                     result.stringProp = valueDes;
                     break;
-                case r'date_prop':
+                 case r'date_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(Date)) as Date?;
                     if (valueDes == null) continue;
                     result.dateProp = valueDes;
                     break;
-                case r'datetime_prop':
+                 case r'datetime_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(DateTime)) as DateTime?;
                     if (valueDes == null) continue;
                     result.datetimeProp = valueDes;
                     break;
-                case r'array_nullable_prop':
+                 case r'array_nullable_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)])) as BuiltList<JsonObject>?;
                     if (valueDes == null) continue;
                     result.arrayNullableProp.replace(valueDes);
                     break;
-                case r'array_and_items_nullable_prop':
+                 case r'array_and_items_nullable_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>?;
                     if (valueDes == null) continue;
                     result.arrayAndItemsNullableProp.replace(valueDes);
                     break;
-                case r'array_items_nullable':
+                 case r'array_items_nullable':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>;
                     result.arrayItemsNullable.replace(valueDes);
                     break;
-                case r'object_nullable_prop':
+                 case r'object_nullable_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap<String, JsonObject>?;
                     if (valueDes == null) continue;
                     result.objectNullableProp.replace(valueDes);
                     break;
-                case r'object_and_items_nullable_prop':
+                 case r'object_and_items_nullable_prop':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>?;
                     if (valueDes == null) continue;
                     result.objectAndItemsNullableProp.replace(valueDes);
                     break;
-                case r'object_items_nullable':
+                 case r'object_items_nullable':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>;
                     result.objectItemsNullable.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    NullableClass deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = NullableClassBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index 1e7b577b4b6..3ced3da6ddd 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'number_only.g.dart';
@@ -16,57 +18,69 @@ part 'number_only.g.dart';
 abstract class NumberOnly implements Built<NumberOnly, NumberOnlyBuilder> {
     @BuiltValueField(wireName: r'JustNumber')
     num? get justNumber;
+
+
     NumberOnly._();
+    
+    factory NumberOnly([void updates(NumberOnlyBuilder b)]) = _$NumberOnly;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(NumberOnlyBuilder b) => b;
 
-    factory NumberOnly([void updates(NumberOnlyBuilder b)]) = _$NumberOnly;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<NumberOnly> get serializer => _$NumberOnlySerializer();
-}
 
 
-class _$NumberOnlySerializer implements StructuredSerializer<NumberOnly> {
+}
+
+class _$NumberOnlySerializer implements PrimitiveSerializer<NumberOnly> {
     @override
     final Iterable<Type> types = const [NumberOnly, _$NumberOnly];
 
     @override
     final String wireName = r'NumberOnly';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, NumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, NumberOnly object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.justNumber != null) {
-            result
-                ..add(r'JustNumber')
-                ..add(serializers.serialize(object.justNumber,
-                    specifiedType: const FullType(num)));
+            yield r'JustNumber';
+            yield serializers.serialize(object.justNumber,
+                    specifiedType: const FullType(num));
         }
-        return result;
     }
 
     @override
-    NumberOnly deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, NumberOnly object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = NumberOnlyBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NumberOnlyBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'JustNumber':
+                 case r'JustNumber':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(num)) as num;
                     result.justNumber = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    NumberOnly deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = NumberOnlyBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index d39b9e351ce..72b471a4572 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -6,6 +6,8 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/deprecated_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'object_with_deprecated_fields.g.dart';
@@ -27,90 +29,99 @@ abstract class ObjectWithDeprecatedFields implements Built<ObjectWithDeprecatedF
     DeprecatedObject? get deprecatedRef;
     @BuiltValueField(wireName: r'bars')
     BuiltList<String>? get bars;
+
+
     ObjectWithDeprecatedFields._();
+    
+    factory ObjectWithDeprecatedFields([void updates(ObjectWithDeprecatedFieldsBuilder b)]) = _$ObjectWithDeprecatedFields;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ObjectWithDeprecatedFieldsBuilder b) => b;
 
-    factory ObjectWithDeprecatedFields([void updates(ObjectWithDeprecatedFieldsBuilder b)]) = _$ObjectWithDeprecatedFields;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
-}
 
 
-class _$ObjectWithDeprecatedFieldsSerializer implements StructuredSerializer<ObjectWithDeprecatedFields> {
+}
+
+class _$ObjectWithDeprecatedFieldsSerializer implements PrimitiveSerializer<ObjectWithDeprecatedFields> {
     @override
     final Iterable<Type> types = const [ObjectWithDeprecatedFields, _$ObjectWithDeprecatedFields];
 
     @override
     final String wireName = r'ObjectWithDeprecatedFields';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ObjectWithDeprecatedFields object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ObjectWithDeprecatedFields object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.uuid != null) {
-            result
-                ..add(r'uuid')
-                ..add(serializers.serialize(object.uuid,
-                    specifiedType: const FullType(String)));
+            yield r'uuid';
+            yield serializers.serialize(object.uuid,
+                    specifiedType: const FullType(String));
         }
         if (object.id != null) {
-            result
-                ..add(r'id')
-                ..add(serializers.serialize(object.id,
-                    specifiedType: const FullType(num)));
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(num));
         }
         if (object.deprecatedRef != null) {
-            result
-                ..add(r'deprecatedRef')
-                ..add(serializers.serialize(object.deprecatedRef,
-                    specifiedType: const FullType(DeprecatedObject)));
+            yield r'deprecatedRef';
+            yield serializers.serialize(object.deprecatedRef,
+                    specifiedType: const FullType(DeprecatedObject));
         }
         if (object.bars != null) {
-            result
-                ..add(r'bars')
-                ..add(serializers.serialize(object.bars,
-                    specifiedType: const FullType(BuiltList, [FullType(String)])));
+            yield r'bars';
+            yield serializers.serialize(object.bars,
+                    specifiedType: const FullType(BuiltList, [FullType(String)]));
         }
-        return result;
     }
 
     @override
-    ObjectWithDeprecatedFields deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ObjectWithDeprecatedFields object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ObjectWithDeprecatedFieldsBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ObjectWithDeprecatedFieldsBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'uuid':
+                 case r'uuid':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.uuid = valueDes;
                     break;
-                case r'id':
+                 case r'id':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(num)) as num;
                     result.id = valueDes;
                     break;
-                case r'deprecatedRef':
+                 case r'deprecatedRef':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(DeprecatedObject)) as DeprecatedObject;
                     result.deprecatedRef.replace(valueDes);
                     break;
-                case r'bars':
+                 case r'bars':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
                     result.bars.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ObjectWithDeprecatedFields deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ObjectWithDeprecatedFieldsBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index 89de30de7c8..610a1731e7c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -5,6 +5,8 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'order.g.dart';
@@ -34,120 +36,126 @@ abstract class Order implements Built<Order, OrderBuilder> {
     // enum statusEnum {  placed,  approved,  delivered,  };
     @BuiltValueField(wireName: r'complete')
     bool? get complete;
+
+
     Order._();
+    
+    factory Order([void updates(OrderBuilder b)]) = _$Order;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(OrderBuilder b) => b
         ..complete = false;
 
-    factory Order([void updates(OrderBuilder b)]) = _$Order;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Order> get serializer => _$OrderSerializer();
-}
 
 
-class _$OrderSerializer implements StructuredSerializer<Order> {
+}
+
+class _$OrderSerializer implements PrimitiveSerializer<Order> {
     @override
     final Iterable<Type> types = const [Order, _$Order];
 
     @override
     final String wireName = r'Order';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Order object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Order object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.id != null) {
-            result
-                ..add(r'id')
-                ..add(serializers.serialize(object.id,
-                    specifiedType: const FullType(int)));
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(int));
         }
         if (object.petId != null) {
-            result
-                ..add(r'petId')
-                ..add(serializers.serialize(object.petId,
-                    specifiedType: const FullType(int)));
+            yield r'petId';
+            yield serializers.serialize(object.petId,
+                    specifiedType: const FullType(int));
         }
         if (object.quantity != null) {
-            result
-                ..add(r'quantity')
-                ..add(serializers.serialize(object.quantity,
-                    specifiedType: const FullType(int)));
+            yield r'quantity';
+            yield serializers.serialize(object.quantity,
+                    specifiedType: const FullType(int));
         }
         if (object.shipDate != null) {
-            result
-                ..add(r'shipDate')
-                ..add(serializers.serialize(object.shipDate,
-                    specifiedType: const FullType(DateTime)));
+            yield r'shipDate';
+            yield serializers.serialize(object.shipDate,
+                    specifiedType: const FullType(DateTime));
         }
         if (object.status != null) {
-            result
-                ..add(r'status')
-                ..add(serializers.serialize(object.status,
-                    specifiedType: const FullType(OrderStatusEnum)));
+            yield r'status';
+            yield serializers.serialize(object.status,
+                    specifiedType: const FullType(OrderStatusEnum));
         }
         if (object.complete != null) {
-            result
-                ..add(r'complete')
-                ..add(serializers.serialize(object.complete,
-                    specifiedType: const FullType(bool)));
+            yield r'complete';
+            yield serializers.serialize(object.complete,
+                    specifiedType: const FullType(bool));
         }
-        return result;
     }
 
     @override
-    Order deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Order object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = OrderBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OrderBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'id':
+                 case r'id':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.id = valueDes;
                     break;
-                case r'petId':
+                 case r'petId':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.petId = valueDes;
                     break;
-                case r'quantity':
+                 case r'quantity':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.quantity = valueDes;
                     break;
-                case r'shipDate':
+                 case r'shipDate':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(DateTime)) as DateTime;
                     result.shipDate = valueDes;
                     break;
-                case r'status':
+                 case r'status':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum;
                     result.status = valueDes;
                     break;
-                case r'complete':
+                 case r'complete':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(bool)) as bool;
                     result.complete = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Order deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = OrderBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
 
 
 
-
 class OrderStatusEnum extends EnumClass {
 
   /// Order Status
@@ -171,3 +179,4 @@ class OrderStatusEnum extends EnumClass {
   static OrderStatusEnum valueOf(String name) => _$orderStatusEnumValueOf(name);
 }
 
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index 08c4fa8dd62..b955cafe5a8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'outer_composite.g.dart';
@@ -22,79 +24,89 @@ abstract class OuterComposite implements Built<OuterComposite, OuterCompositeBui
     String? get myString;
     @BuiltValueField(wireName: r'my_boolean')
     bool? get myBoolean;
+
+
     OuterComposite._();
+    
+    factory OuterComposite([void updates(OuterCompositeBuilder b)]) = _$OuterComposite;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(OuterCompositeBuilder b) => b;
 
-    factory OuterComposite([void updates(OuterCompositeBuilder b)]) = _$OuterComposite;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
-}
 
 
-class _$OuterCompositeSerializer implements StructuredSerializer<OuterComposite> {
+}
+
+class _$OuterCompositeSerializer implements PrimitiveSerializer<OuterComposite> {
     @override
     final Iterable<Type> types = const [OuterComposite, _$OuterComposite];
 
     @override
     final String wireName = r'OuterComposite';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, OuterComposite object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, OuterComposite object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.myNumber != null) {
-            result
-                ..add(r'my_number')
-                ..add(serializers.serialize(object.myNumber,
-                    specifiedType: const FullType(num)));
+            yield r'my_number';
+            yield serializers.serialize(object.myNumber,
+                    specifiedType: const FullType(num));
         }
         if (object.myString != null) {
-            result
-                ..add(r'my_string')
-                ..add(serializers.serialize(object.myString,
-                    specifiedType: const FullType(String)));
+            yield r'my_string';
+            yield serializers.serialize(object.myString,
+                    specifiedType: const FullType(String));
         }
         if (object.myBoolean != null) {
-            result
-                ..add(r'my_boolean')
-                ..add(serializers.serialize(object.myBoolean,
-                    specifiedType: const FullType(bool)));
+            yield r'my_boolean';
+            yield serializers.serialize(object.myBoolean,
+                    specifiedType: const FullType(bool));
         }
-        return result;
     }
 
     @override
-    OuterComposite deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, OuterComposite object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = OuterCompositeBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterCompositeBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'my_number':
+                 case r'my_number':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(num)) as num;
                     result.myNumber = valueDes;
                     break;
-                case r'my_string':
+                 case r'my_string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.myString = valueDes;
                     break;
-                case r'my_boolean':
+                 case r'my_boolean':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(bool)) as bool;
                     result.myBoolean = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    OuterComposite deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = OuterCompositeBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index a8c92f48d4a..80a178df93d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -5,6 +5,8 @@
 import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'outer_object_with_enum_property.g.dart';
@@ -18,55 +20,67 @@ abstract class OuterObjectWithEnumProperty implements Built<OuterObjectWithEnumP
     @BuiltValueField(wireName: r'value')
     OuterEnumInteger get value;
     // enum valueEnum {  0,  1,  2,  };
+
+
     OuterObjectWithEnumProperty._();
+    
+    factory OuterObjectWithEnumProperty([void updates(OuterObjectWithEnumPropertyBuilder b)]) = _$OuterObjectWithEnumProperty;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(OuterObjectWithEnumPropertyBuilder b) => b;
 
-    factory OuterObjectWithEnumProperty([void updates(OuterObjectWithEnumPropertyBuilder b)]) = _$OuterObjectWithEnumProperty;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
-}
 
 
-class _$OuterObjectWithEnumPropertySerializer implements StructuredSerializer<OuterObjectWithEnumProperty> {
+}
+
+class _$OuterObjectWithEnumPropertySerializer implements PrimitiveSerializer<OuterObjectWithEnumProperty> {
     @override
     final Iterable<Type> types = const [OuterObjectWithEnumProperty, _$OuterObjectWithEnumProperty];
 
     @override
     final String wireName = r'OuterObjectWithEnumProperty';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, OuterObjectWithEnumProperty object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
-        result
-            ..add(r'value')
-            ..add(serializers.serialize(object.value,
-                specifiedType: const FullType(OuterEnumInteger)));
-        return result;
+    Iterable<Object?> _serializeProperties(Serializers serializers, OuterObjectWithEnumProperty object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        yield r'value';
+        yield serializers.serialize(object.value,
+                specifiedType: const FullType(OuterEnumInteger));
     }
 
     @override
-    OuterObjectWithEnumProperty deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, OuterObjectWithEnumProperty object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = OuterObjectWithEnumPropertyBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterObjectWithEnumPropertyBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'value':
+                 case r'value':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
                     result.value = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    OuterObjectWithEnumProperty deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = OuterObjectWithEnumPropertyBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index 30bf3b1ebd5..ded468204c2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -7,6 +7,8 @@ import 'package:openapi/src/model/category.dart';
 import 'package:openapi/src/model/tag.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'pet.g.dart';
@@ -36,115 +38,121 @@ abstract class Pet implements Built<Pet, PetBuilder> {
     @BuiltValueField(wireName: r'status')
     PetStatusEnum? get status;
     // enum statusEnum {  available,  pending,  sold,  };
+
+
     Pet._();
+    
+    factory Pet([void updates(PetBuilder b)]) = _$Pet;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(PetBuilder b) => b;
 
-    factory Pet([void updates(PetBuilder b)]) = _$Pet;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Pet> get serializer => _$PetSerializer();
-}
 
 
-class _$PetSerializer implements StructuredSerializer<Pet> {
+}
+
+class _$PetSerializer implements PrimitiveSerializer<Pet> {
     @override
     final Iterable<Type> types = const [Pet, _$Pet];
 
     @override
     final String wireName = r'Pet';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Pet object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Pet object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.id != null) {
-            result
-                ..add(r'id')
-                ..add(serializers.serialize(object.id,
-                    specifiedType: const FullType(int)));
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(int));
         }
         if (object.category != null) {
-            result
-                ..add(r'category')
-                ..add(serializers.serialize(object.category,
-                    specifiedType: const FullType(Category)));
+            yield r'category';
+            yield serializers.serialize(object.category,
+                    specifiedType: const FullType(Category));
         }
-        result
-            ..add(r'name')
-            ..add(serializers.serialize(object.name,
-                specifiedType: const FullType(String)));
-        result
-            ..add(r'photoUrls')
-            ..add(serializers.serialize(object.photoUrls,
-                specifiedType: const FullType(BuiltSet, [FullType(String)])));
+        yield r'name';
+        yield serializers.serialize(object.name,
+                specifiedType: const FullType(String));
+        yield r'photoUrls';
+        yield serializers.serialize(object.photoUrls,
+                specifiedType: const FullType(BuiltSet, [FullType(String)]));
         if (object.tags != null) {
-            result
-                ..add(r'tags')
-                ..add(serializers.serialize(object.tags,
-                    specifiedType: const FullType(BuiltList, [FullType(Tag)])));
+            yield r'tags';
+            yield serializers.serialize(object.tags,
+                    specifiedType: const FullType(BuiltList, [FullType(Tag)]));
         }
         if (object.status != null) {
-            result
-                ..add(r'status')
-                ..add(serializers.serialize(object.status,
-                    specifiedType: const FullType(PetStatusEnum)));
+            yield r'status';
+            yield serializers.serialize(object.status,
+                    specifiedType: const FullType(PetStatusEnum));
         }
-        return result;
     }
 
     @override
-    Pet deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Pet object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = PetBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PetBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'id':
+                 case r'id':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.id = valueDes;
                     break;
-                case r'category':
+                 case r'category':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(Category)) as Category;
                     result.category.replace(valueDes);
                     break;
-                case r'name':
+                 case r'name':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.name = valueDes;
                     break;
-                case r'photoUrls':
+                 case r'photoUrls':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltSet, [FullType(String)])) as BuiltSet<String>;
                     result.photoUrls.replace(valueDes);
                     break;
-                case r'tags':
+                 case r'tags':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList<Tag>;
                     result.tags.replace(valueDes);
                     break;
-                case r'status':
+                 case r'status':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum;
                     result.status = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Pet deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = PetBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
 
 
 
-
 class PetStatusEnum extends EnumClass {
 
   /// pet status in the store
@@ -168,3 +176,4 @@ class PetStatusEnum extends EnumClass {
   static PetStatusEnum valueOf(String name) => _$petStatusEnumValueOf(name);
 }
 
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index cd7e467ab74..2b95c157827 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'read_only_first.g.dart';
@@ -19,68 +21,79 @@ abstract class ReadOnlyFirst implements Built<ReadOnlyFirst, ReadOnlyFirstBuilde
     String? get bar;
     @BuiltValueField(wireName: r'baz')
     String? get baz;
+
+
     ReadOnlyFirst._();
+    
+    factory ReadOnlyFirst([void updates(ReadOnlyFirstBuilder b)]) = _$ReadOnlyFirst;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(ReadOnlyFirstBuilder b) => b;
 
-    factory ReadOnlyFirst([void updates(ReadOnlyFirstBuilder b)]) = _$ReadOnlyFirst;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
-}
 
 
-class _$ReadOnlyFirstSerializer implements StructuredSerializer<ReadOnlyFirst> {
+}
+
+class _$ReadOnlyFirstSerializer implements PrimitiveSerializer<ReadOnlyFirst> {
     @override
     final Iterable<Type> types = const [ReadOnlyFirst, _$ReadOnlyFirst];
 
     @override
     final String wireName = r'ReadOnlyFirst';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, ReadOnlyFirst object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, ReadOnlyFirst object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.bar != null) {
-            result
-                ..add(r'bar')
-                ..add(serializers.serialize(object.bar,
-                    specifiedType: const FullType(String)));
+            yield r'bar';
+            yield serializers.serialize(object.bar,
+                    specifiedType: const FullType(String));
         }
         if (object.baz != null) {
-            result
-                ..add(r'baz')
-                ..add(serializers.serialize(object.baz,
-                    specifiedType: const FullType(String)));
+            yield r'baz';
+            yield serializers.serialize(object.baz,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    ReadOnlyFirst deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, ReadOnlyFirst object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = ReadOnlyFirstBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ReadOnlyFirstBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'bar':
+                 case r'bar':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.bar = valueDes;
                     break;
-                case r'baz':
+                 case r'baz':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.baz = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    ReadOnlyFirst deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ReadOnlyFirstBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index 4087bbed585..1ac60c354b0 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'special_model_name.g.dart';
@@ -16,57 +18,69 @@ part 'special_model_name.g.dart';
 abstract class SpecialModelName implements Built<SpecialModelName, SpecialModelNameBuilder> {
     @BuiltValueField(wireName: r'$special[property.name]')
     int? get dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket;
+
+
     SpecialModelName._();
+    
+    factory SpecialModelName([void updates(SpecialModelNameBuilder b)]) = _$SpecialModelName;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(SpecialModelNameBuilder b) => b;
 
-    factory SpecialModelName([void updates(SpecialModelNameBuilder b)]) = _$SpecialModelName;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
-}
 
 
-class _$SpecialModelNameSerializer implements StructuredSerializer<SpecialModelName> {
+}
+
+class _$SpecialModelNameSerializer implements PrimitiveSerializer<SpecialModelName> {
     @override
     final Iterable<Type> types = const [SpecialModelName, _$SpecialModelName];
 
     @override
     final String wireName = r'SpecialModelName';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, SpecialModelName object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, SpecialModelName object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket != null) {
-            result
-                ..add(r'$special[property.name]')
-                ..add(serializers.serialize(object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket,
-                    specifiedType: const FullType(int)));
+            yield r'$special[property.name]';
+            yield serializers.serialize(object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket,
+                    specifiedType: const FullType(int));
         }
-        return result;
     }
 
     @override
-    SpecialModelName deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, SpecialModelName object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = SpecialModelNameBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required SpecialModelNameBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'$special[property.name]':
+                 case r'$special[property.name]':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    SpecialModelName deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = SpecialModelNameBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index 802212c6283..1362c17300e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'tag.g.dart';
@@ -19,68 +21,79 @@ abstract class Tag implements Built<Tag, TagBuilder> {
     int? get id;
     @BuiltValueField(wireName: r'name')
     String? get name;
+
+
     Tag._();
+    
+    factory Tag([void updates(TagBuilder b)]) = _$Tag;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(TagBuilder b) => b;
 
-    factory Tag([void updates(TagBuilder b)]) = _$Tag;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<Tag> get serializer => _$TagSerializer();
-}
 
 
-class _$TagSerializer implements StructuredSerializer<Tag> {
+}
+
+class _$TagSerializer implements PrimitiveSerializer<Tag> {
     @override
     final Iterable<Type> types = const [Tag, _$Tag];
 
     @override
     final String wireName = r'Tag';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, Tag object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, Tag object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.id != null) {
-            result
-                ..add(r'id')
-                ..add(serializers.serialize(object.id,
-                    specifiedType: const FullType(int)));
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(int));
         }
         if (object.name != null) {
-            result
-                ..add(r'name')
-                ..add(serializers.serialize(object.name,
-                    specifiedType: const FullType(String)));
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(String));
         }
-        return result;
     }
 
     @override
-    Tag deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, Tag object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = TagBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required TagBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'id':
+                 case r'id':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.id = valueDes;
                     break;
-                case r'name':
+                 case r'name':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.name = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    Tag deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = TagBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index d9a045fe0d7..792b1802413 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -4,6 +4,8 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
 // ignore_for_file: unused_element, unused_import
 
 part 'user.g.dart';
@@ -38,134 +40,139 @@ abstract class User implements Built<User, UserBuilder> {
     /// User Status
     @BuiltValueField(wireName: r'userStatus')
     int? get userStatus;
+
+
     User._();
+    
+    factory User([void updates(UserBuilder b)]) = _$User;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(UserBuilder b) => b;
 
-    factory User([void updates(UserBuilder b)]) = _$User;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<User> get serializer => _$UserSerializer();
-}
 
 
-class _$UserSerializer implements StructuredSerializer<User> {
+}
+
+class _$UserSerializer implements PrimitiveSerializer<User> {
     @override
     final Iterable<Type> types = const [User, _$User];
 
     @override
     final String wireName = r'User';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, User object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, User object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.id != null) {
-            result
-                ..add(r'id')
-                ..add(serializers.serialize(object.id,
-                    specifiedType: const FullType(int)));
+            yield r'id';
+            yield serializers.serialize(object.id,
+                    specifiedType: const FullType(int));
         }
         if (object.username != null) {
-            result
-                ..add(r'username')
-                ..add(serializers.serialize(object.username,
-                    specifiedType: const FullType(String)));
+            yield r'username';
+            yield serializers.serialize(object.username,
+                    specifiedType: const FullType(String));
         }
         if (object.firstName != null) {
-            result
-                ..add(r'firstName')
-                ..add(serializers.serialize(object.firstName,
-                    specifiedType: const FullType(String)));
+            yield r'firstName';
+            yield serializers.serialize(object.firstName,
+                    specifiedType: const FullType(String));
         }
         if (object.lastName != null) {
-            result
-                ..add(r'lastName')
-                ..add(serializers.serialize(object.lastName,
-                    specifiedType: const FullType(String)));
+            yield r'lastName';
+            yield serializers.serialize(object.lastName,
+                    specifiedType: const FullType(String));
         }
         if (object.email != null) {
-            result
-                ..add(r'email')
-                ..add(serializers.serialize(object.email,
-                    specifiedType: const FullType(String)));
+            yield r'email';
+            yield serializers.serialize(object.email,
+                    specifiedType: const FullType(String));
         }
         if (object.password != null) {
-            result
-                ..add(r'password')
-                ..add(serializers.serialize(object.password,
-                    specifiedType: const FullType(String)));
+            yield r'password';
+            yield serializers.serialize(object.password,
+                    specifiedType: const FullType(String));
         }
         if (object.phone != null) {
-            result
-                ..add(r'phone')
-                ..add(serializers.serialize(object.phone,
-                    specifiedType: const FullType(String)));
+            yield r'phone';
+            yield serializers.serialize(object.phone,
+                    specifiedType: const FullType(String));
         }
         if (object.userStatus != null) {
-            result
-                ..add(r'userStatus')
-                ..add(serializers.serialize(object.userStatus,
-                    specifiedType: const FullType(int)));
+            yield r'userStatus';
+            yield serializers.serialize(object.userStatus,
+                    specifiedType: const FullType(int));
         }
-        return result;
     }
 
     @override
-    User deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, User object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = UserBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required UserBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'id':
+                 case r'id':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.id = valueDes;
                     break;
-                case r'username':
+                 case r'username':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.username = valueDes;
                     break;
-                case r'firstName':
+                 case r'firstName':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.firstName = valueDes;
                     break;
-                case r'lastName':
+                 case r'lastName':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.lastName = valueDes;
                     break;
-                case r'email':
+                 case r'email':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.email = valueDes;
                     break;
-                case r'password':
+                 case r'password':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.password = valueDes;
                     break;
-                case r'phone':
+                 case r'phone':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(String)) as String;
                     result.phone = valueDes;
                     break;
-                case r'userStatus':
+                 case r'userStatus':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(int)) as int;
                     result.userStatus = valueDes;
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    User deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = UserBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart
index c1ff1c751f2..afaf76a5cf2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart
@@ -4,6 +4,8 @@
 
 // ignore_for_file: unused_import
 
+import 'package:one_of_serializer/any_of_serializer.dart';
+import 'package:one_of_serializer/one_of_serializer.dart';
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/json_object.dart';
 import 'package:built_value/serializer.dart';
@@ -66,19 +68,19 @@ part 'serializers.g.dart';
 @SerializersFor([
   AdditionalPropertiesClass,
   AllOfWithSingleRef,
-  Animal,
+  Animal,$Animal,
   ApiResponse,
   ArrayOfArrayOfNumberOnly,
   ArrayOfNumberOnly,
   ArrayTest,
   Capitalization,
   Cat,
-  CatAllOf,
+  CatAllOf,$CatAllOf,
   Category,
   ClassModel,
   DeprecatedObject,
   Dog,
-  DogAllOf,
+  DogAllOf,$DogAllOf,
   EnumArrays,
   EnumTest,
   FileSchemaTestClass,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml
index d0fc0e57fb5..7f0fbb9e6bf 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml
@@ -8,6 +8,8 @@ environment:
 
 dependencies:
   dio: '>=4.0.0 <5.0.0'
+  one_of: '>=1.5.0 <2.0.0'
+  one_of_serializer: '>=1.5.0 <2.0.0'
   built_value: '>=8.1.0 <9.0.0'
   built_collection: '>=5.1.0 <6.0.0'
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/puby.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/puby.yaml
new file mode 100644
index 00000000000..64080c7e80a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/puby.yaml
@@ -0,0 +1,3 @@
+exclude:
+  - test
+  - pub run build_runner
\ No newline at end of file
-- 
GitLab


From 472b52776d0a4cd37d6435d857d07fe8d3ec8b70 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Fri, 13 May 2022 11:09:10 +0200
Subject: [PATCH 13/42] resolve conflicts

---
 .../dart-dio/oneof/lib/src/api_util.dart      |  1 -
 .../petstore/dart-dio/oneof/pubspec.yaml      |  2 +-
 .../lib/src/api_util.dart                     |  1 -
 .../pubspec.yaml                              |  2 +-
 .../oneof_primitive/lib/src/api_util.dart     |  1 -
 .../dart-dio/oneof_primitive/pubspec.yaml     |  2 +-
 .../src/model/foo_get_default_response.dart   | 61 ++++++++++++-------
 7 files changed, 43 insertions(+), 27 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart
index e301a95d8e3..ed3bb12f25b 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api_util.dart
@@ -8,7 +8,6 @@ import 'dart:typed_data';
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/serializer.dart';
 import 'package:dio/dio.dart';
-import 'package:dio/src/parameter.dart';
 
 /// Format the given form parameter object into something that Dio can handle.
 /// Returns primitive or String.
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
index 7f0fbb9e6bf..00074c53a93 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
@@ -7,7 +7,7 @@ environment:
   sdk: '>=2.12.0 <3.0.0'
 
 dependencies:
-  dio: '>=4.0.0 <5.0.0'
+  dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
   built_value: '>=8.1.0 <9.0.0'
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart
index e301a95d8e3..ed3bb12f25b 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api_util.dart
@@ -8,7 +8,6 @@ import 'dart:typed_data';
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/serializer.dart';
 import 'package:dio/dio.dart';
-import 'package:dio/src/parameter.dart';
 
 /// Format the given form parameter object into something that Dio can handle.
 /// Returns primitive or String.
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
index 7f0fbb9e6bf..00074c53a93 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
@@ -7,7 +7,7 @@ environment:
   sdk: '>=2.12.0 <3.0.0'
 
 dependencies:
-  dio: '>=4.0.0 <5.0.0'
+  dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
   built_value: '>=8.1.0 <9.0.0'
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart
index e301a95d8e3..ed3bb12f25b 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api_util.dart
@@ -8,7 +8,6 @@ import 'dart:typed_data';
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/serializer.dart';
 import 'package:dio/dio.dart';
-import 'package:dio/src/parameter.dart';
 
 /// Format the given form parameter object into something that Dio can handle.
 /// Returns primitive or String.
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
index 7f0fbb9e6bf..00074c53a93 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
@@ -7,7 +7,7 @@ environment:
   sdk: '>=2.12.0 <3.0.0'
 
 dependencies:
-  dio: '>=4.0.0 <5.0.0'
+  dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
   built_value: '>=8.1.0 <9.0.0'
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
index 655b5f480db..acbde9dc46f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
@@ -5,6 +5,9 @@
 import 'package:openapi/src/model/foo.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:one_of/one_of.dart';
+import 'package:one_of/any_of.dart';
+// ignore_for_file: unused_element, unused_import
 
 part 'foo_get_default_response.g.dart';
 
@@ -12,61 +15,77 @@ part 'foo_get_default_response.g.dart';
 ///
 /// Properties:
 /// * [string] 
+@BuiltValue()
 abstract class FooGetDefaultResponse implements Built<FooGetDefaultResponse, FooGetDefaultResponseBuilder> {
     @BuiltValueField(wireName: r'string')
     Foo? get string;
 
+
     FooGetDefaultResponse._();
+    
+    factory FooGetDefaultResponse([void updates(FooGetDefaultResponseBuilder b)]) = _$FooGetDefaultResponse;
 
     @BuiltValueHook(initializeBuilder: true)
     static void _defaults(FooGetDefaultResponseBuilder b) => b;
 
-    factory FooGetDefaultResponse([void updates(FooGetDefaultResponseBuilder b)]) = _$FooGetDefaultResponse;
-
     @BuiltValueSerializer(custom: true)
     static Serializer<FooGetDefaultResponse> get serializer => _$FooGetDefaultResponseSerializer();
+
+
 }
 
-class _$FooGetDefaultResponseSerializer implements StructuredSerializer<FooGetDefaultResponse> {
+class _$FooGetDefaultResponseSerializer implements PrimitiveSerializer<FooGetDefaultResponse> {
     @override
     final Iterable<Type> types = const [FooGetDefaultResponse, _$FooGetDefaultResponse];
 
     @override
     final String wireName = r'FooGetDefaultResponse';
 
-    @override
-    Iterable<Object?> serialize(Serializers serializers, FooGetDefaultResponse object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = <Object?>[];
+    Iterable<Object?> _serializeProperties(Serializers serializers, FooGetDefaultResponse object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
         if (object.string != null) {
-            result
-                ..add(r'string')
-                ..add(serializers.serialize(object.string,
-                    specifiedType: const FullType(Foo)));
+            yield r'string';
+            yield serializers.serialize(object.string,
+                    specifiedType: const FullType(Foo));
         }
-        return result;
     }
 
     @override
-    FooGetDefaultResponse deserialize(Serializers serializers, Iterable<Object?> serialized,
+    Object serialize(Serializers serializers, FooGetDefaultResponse object,
         {FullType specifiedType = FullType.unspecified}) {
-        final result = FooGetDefaultResponseBuilder();
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    }
 
-        final iterator = serialized.iterator;
-        while (iterator.moveNext()) {
-            final key = iterator.current as String;
-            iterator.moveNext();
-            final Object? value = iterator.current;
-            
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooGetDefaultResponseBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
             switch (key) {
-                case r'string':
+                 case r'string':
                     final valueDes = serializers.deserialize(value,
                         specifiedType: const FullType(Foo)) as Foo;
                     result.string.replace(valueDes);
                     break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
             }
         }
+    }
+    
+    @override
+    FooGetDefaultResponse deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = FooGetDefaultResponseBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
         return result.build();
     }
 }
 
+
+
+
-- 
GitLab


From 69be5765ab685f6f9fbccc9d23aaea2a26609448 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 19 May 2022 12:20:20 +0200
Subject: [PATCH 14/42] fix missing serializers

---
 .../dio/serialization/built_value/serializers.mustache     | 7 ++++---
 .../petstore/dart-dio/oneof/lib/src/serializers.dart       | 2 ++
 .../lib/src/serializers.dart                               | 7 +++++++
 .../dart-dio/oneof_primitive/lib/src/serializers.dart      | 2 ++
 .../petstore_client_lib_fake/lib/src/serializers.dart      | 5 +++++
 5 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache
index ece2c4d6902..aa49d9aef9e 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/serializers.mustache
@@ -31,9 +31,10 @@ Serializers serializers = (_$serializers.toBuilder(){{#builtValueSerializers}}
         const FullType(BuiltMap, [FullType(String), FullType{{#isNullable}}.nullable{{/isNullable}}({{dataType}})]),
         () => MapBuilder<String, {{dataType}}>(),
 {{/isMap}}
-      ){{/builtValueSerializers}}{{#useDateLibTimeMachine}}
-      ..add(const OneOfSerializer())
-      ..add(const AnyOfSerializer())
+      ){{/builtValueSerializers}}
+      {{#models}}{{#model}}{{#vendorExtensions.x-is-parent}}..add({{classname}}.serializer)
+      {{/vendorExtensions.x-is-parent}}{{/model}}{{/models}}..add(const OneOfSerializer())
+      ..add(const AnyOfSerializer()){{#useDateLibTimeMachine}}      
       ..add(const OffsetDateSerializer())
       ..add(const OffsetDateTimeSerializer()){{/useDateLibTimeMachine}}{{#useDateLibCore}}
       ..add(const DateSerializer())
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart
index 83d4e026d90..ddb1d66a1f5 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/serializers.dart
@@ -26,6 +26,8 @@ part 'serializers.g.dart';
   Fruit,
 ])
 Serializers serializers = (_$serializers.toBuilder()
+      ..add(const OneOfSerializer())
+      ..add(const AnyOfSerializer())
       ..add(const DateSerializer())
       ..add(Iso8601DateTimeSerializer()))
     .build();
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart
index 114deea93e4..55083251e5e 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/serializers.dart
@@ -52,6 +52,13 @@ Serializers serializers = (_$serializers.toBuilder()
         const FullType(BuiltList, [FullType(FooRefOrValue)]),
         () => ListBuilder<FooRefOrValue>(),
       )
+      ..add(Addressable.serializer)
+      ..add(Entity.serializer)
+      ..add(EntityRef.serializer)
+      ..add(Extensible.serializer)
+      ..add(Pizza.serializer)
+      ..add(const OneOfSerializer())
+      ..add(const AnyOfSerializer())
       ..add(const DateSerializer())
       ..add(Iso8601DateTimeSerializer()))
     .build();
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart
index daf5d6f6ec5..cbd8870dc67 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/serializers.dart
@@ -24,6 +24,8 @@ part 'serializers.g.dart';
   Example,
 ])
 Serializers serializers = (_$serializers.toBuilder()
+      ..add(const OneOfSerializer())
+      ..add(const AnyOfSerializer())
       ..add(const DateSerializer())
       ..add(Iso8601DateTimeSerializer()))
     .build();
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart
index 7251b8c5e92..60f50e5a77f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/serializers.dart
@@ -148,6 +148,11 @@ Serializers serializers = (_$serializers.toBuilder()
         const FullType(BuiltList, [FullType(String)]),
         () => ListBuilder<String>(),
       )
+      ..add(Animal.serializer)
+      ..add(CatAllOf.serializer)
+      ..add(DogAllOf.serializer)
+      ..add(const OneOfSerializer())
+      ..add(const AnyOfSerializer())
       ..add(const DateSerializer())
       ..add(Iso8601DateTimeSerializer()))
     .build();
-- 
GitLab


From 44b94767f2d5eaf7594b7390fbcc2af54371329a Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Fri, 27 May 2022 02:53:36 +0200
Subject: [PATCH 15/42] Updated samples and fixed merge conflict

---
 .../dart-dio/oneof/.openapi-generator/VERSION |   2 +-
 .../.openapi-generator/VERSION                |   2 +-
 .../.openapi-generator/VERSION                |   2 +-
 .../lib/src/model/class_model.dart            | 131 +++++++-------
 .../lib/src/model/model200_response.dart      | 161 +++++++++---------
 5 files changed, 143 insertions(+), 155 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
index 5f68295fc19..89648de3311 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
@@ -1 +1 @@
-6.0.0-SNAPSHOT
\ No newline at end of file
+6.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
index 5f68295fc19..89648de3311 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
@@ -1 +1 @@
-6.0.0-SNAPSHOT
\ No newline at end of file
+6.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
index 5f68295fc19..89648de3311 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
@@ -1 +1 @@
-6.0.0-SNAPSHOT
\ No newline at end of file
+6.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index bc7e5059494..51e021f9585 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -13,83 +13,78 @@ part 'class_model.g.dart';
 /// Model for testing model with \"_class\" property
 ///
 /// Properties:
-/// * [classField]
+/// * [classField] 
 @BuiltValue()
 abstract class ClassModel implements Built<ClassModel, ClassModelBuilder> {
-  @BuiltValueField(wireName: r'_class')
-  String? get classField;
+    @BuiltValueField(wireName: r'_class')
+    String? get classField;
 
-  ClassModel._();
 
-  factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
+    ClassModel._();
+    
+    factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(ClassModelBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
 
-  @BuiltValueHook(initializeBuilder: true)
-  static void _defaults(ClassModelBuilder b) => b;
 
-  @BuiltValueSerializer(custom: true)
-  static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
 }
 
 class _$ClassModelSerializer implements PrimitiveSerializer<ClassModel> {
-  @override
-  final Iterable<Type> types = const [ClassModel, _$ClassModel];
-
-  @override
-  final String wireName = r'ClassModel';
-
-  @override
-  Iterable<Object?> serialize(Serializers serializers, ClassModel object,
-      {FullType specifiedType = FullType.unspecified}) {
-    final result = <Object?>[];
-    if (object.classField != null) {
-      result
-        ..add(r'_class')
-        ..add(serializers.serialize(object.classField,
-            specifiedType: const FullType(String)));
+    @override
+    final Iterable<Type> types = const [ClassModel, _$ClassModel];
+
+    @override
+    final String wireName = r'ClassModel';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, ClassModel object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.classField != null) {
+            yield r'_class';
+            yield serializers.serialize(object.classField,
+                    specifiedType: const FullType(String));
+        }
+    }
+
+    @override
+    Object serialize(Serializers serializers, ClassModel object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
     }
-  }
-
-  @override
-  Object serialize(Serializers serializers, ClassModel object,
-      {FullType specifiedType = FullType.unspecified}) {
-    return _serializeProperties(serializers, object,
-            specifiedType: specifiedType)
-        .toList();
-  }
-
-  void _deserializeProperties(Serializers serializers, Object serialized,
-      {FullType specifiedType = FullType.unspecified,
-      required List<Object?> serializedList,
-      required ClassModelBuilder result,
-      required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-      final key = serializedList[i] as String;
-      final value = serializedList[i + 1];
-      switch (key) {
-        case r'_class':
-          final valueDes = serializers.deserialize(value,
-              specifiedType: const FullType(String)) as String;
-          result.classField = valueDes;
-          break;
-        default:
-          unhandled.add(key);
-          unhandled.add(value);
-          break;
-      }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ClassModelBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'_class':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.classField = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    ClassModel deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = ClassModelBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
     }
-  }
-
-  @override
-  ClassModel deserialize(Serializers serializers, Object serialized,
-      {FullType specifiedType = FullType.unspecified}) {
-    final result = ClassModelBuilder();
-    final serializedList = (serialized as Iterable<Object?>).toList();
-    final unhandled = <Object?>[];
-    _deserializeProperties(serializers, serialized,
-        specifiedType: specifiedType,
-        serializedList: serializedList,
-        unhandled: unhandled,
-        result: result);
-    return result.build();
-  }
 }
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index b5542b29b44..8c78228ebbc 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -13,98 +13,91 @@ part 'model200_response.g.dart';
 /// Model for testing model name starting with number
 ///
 /// Properties:
-/// * [name]
-/// * [classField]
+/// * [name] 
+/// * [classField] 
 @BuiltValue()
-abstract class Model200Response
-    implements Built<Model200Response, Model200ResponseBuilder> {
-  @BuiltValueField(wireName: r'name')
-  int? get name;
-  @BuiltValueField(wireName: r'class')
-  String? get classField;
+abstract class Model200Response implements Built<Model200Response, Model200ResponseBuilder> {
+    @BuiltValueField(wireName: r'name')
+    int? get name;
+    @BuiltValueField(wireName: r'class')
+    String? get classField;
 
-  Model200Response._();
 
-  factory Model200Response([void updates(Model200ResponseBuilder b)]) =
-      _$Model200Response;
+    Model200Response._();
+    
+    factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(Model200ResponseBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<Model200Response> get serializer => _$Model200ResponseSerializer();
 
-  @BuiltValueHook(initializeBuilder: true)
-  static void _defaults(Model200ResponseBuilder b) => b;
 
-  @BuiltValueSerializer(custom: true)
-  static Serializer<Model200Response> get serializer =>
-      _$Model200ResponseSerializer();
 }
 
-class _$Model200ResponseSerializer
-    implements PrimitiveSerializer<Model200Response> {
-  @override
-  final Iterable<Type> types = const [Model200Response, _$Model200Response];
-
-  @override
-  final String wireName = r'Model200Response';
-
-  Iterable<Object?> _serializeProperties(
-      Serializers serializers, Model200Response object,
-      {FullType specifiedType = FullType.unspecified}) sync* {
-    if (object.name != null) {
-      yield r'name';
-      yield serializers.serialize(object.name,
-          specifiedType: const FullType(int));
+class _$Model200ResponseSerializer implements PrimitiveSerializer<Model200Response> {
+    @override
+    final Iterable<Type> types = const [Model200Response, _$Model200Response];
+
+    @override
+    final String wireName = r'Model200Response';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, Model200Response object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.name != null) {
+            yield r'name';
+            yield serializers.serialize(object.name,
+                    specifiedType: const FullType(int));
+        }
+        if (object.classField != null) {
+            yield r'class';
+            yield serializers.serialize(object.classField,
+                    specifiedType: const FullType(String));
+        }
     }
-    if (object.classField != null) {
-      yield r'class';
-      yield serializers.serialize(object.classField,
-          specifiedType: const FullType(String));
+
+    @override
+    Object serialize(Serializers serializers, Model200Response object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
     }
-  }
-
-  @override
-  Object serialize(Serializers serializers, Model200Response object,
-      {FullType specifiedType = FullType.unspecified}) {
-    return _serializeProperties(serializers, object,
-            specifiedType: specifiedType)
-        .toList();
-  }
-
-  void _deserializeProperties(Serializers serializers, Object serialized,
-      {FullType specifiedType = FullType.unspecified,
-      required List<Object?> serializedList,
-      required Model200ResponseBuilder result,
-      required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-      final key = serializedList[i] as String;
-      final value = serializedList[i + 1];
-      switch (key) {
-        case r'name':
-          final valueDes = serializers.deserialize(value,
-              specifiedType: const FullType(int)) as int;
-          result.name = valueDes;
-          break;
-        case r'class':
-          final valueDes = serializers.deserialize(value,
-              specifiedType: const FullType(String)) as String;
-          result.classField = valueDes;
-          break;
-        default:
-          unhandled.add(key);
-          unhandled.add(value);
-          break;
-      }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required Model200ResponseBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'name':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(int)) as int;
+                    result.name = valueDes;
+                    break;
+                 case r'class':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.classField = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    Model200Response deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = Model200ResponseBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
     }
-  }
-
-  @override
-  Model200Response deserialize(Serializers serializers, Object serialized,
-      {FullType specifiedType = FullType.unspecified}) {
-    final result = Model200ResponseBuilder();
-    final serializedList = (serialized as Iterable<Object?>).toList();
-    final unhandled = <Object?>[];
-    _deserializeProperties(serializers, serialized,
-        specifiedType: specifiedType,
-        serializedList: serializedList,
-        unhandled: unhandled,
-        result: result);
-    return result.build();
-  }
 }
+
+
+
+
-- 
GitLab


From 27ffd32ebed530965d3ee5a8d5d9f79a57005766 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Fri, 8 Jul 2022 03:32:02 +0200
Subject: [PATCH 16/42] updated samples

---
 .../client/petstore/dart-dio/oneof/.openapi-generator/VERSION   | 2 +-
 .../.openapi-generator/VERSION                                  | 2 +-
 .../dart-dio/oneof_primitive/.openapi-generator/VERSION         | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
index 89648de3311..66672d4e9d3 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/VERSION
@@ -1 +1 @@
-6.0.1-SNAPSHOT
\ No newline at end of file
+6.1.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
index 89648de3311..66672d4e9d3 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/.openapi-generator/VERSION
@@ -1 +1 @@
-6.0.1-SNAPSHOT
\ No newline at end of file
+6.1.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
index 89648de3311..66672d4e9d3 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/VERSION
@@ -1 +1 @@
-6.0.1-SNAPSHOT
\ No newline at end of file
+6.1.0-SNAPSHOT
\ No newline at end of file
-- 
GitLab


From 5cba9b61c2f9c081fa5136afec585bfdb8b4e0a6 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Fri, 8 Jul 2022 10:36:03 +0200
Subject: [PATCH 17/42] Follow java conventions

---
 .../codegen/languages/DartDioClientCodegen.java        | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 9976e6c53a1..206b9ba3455 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -345,7 +345,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
     }
 
     /// Gets all ancestors of a given model, and puts it in accumulator
-    protected void _getAncestors(CodegenModel cm, Map<String,CodegenModel> allModels, Set<String> accumulator) {
+    private void getAncestors(CodegenModel cm, Map<String,CodegenModel> allModels, Set<String> accumulator) {
        
         //get direct parents
         Set<String> directParentNames = cm.allOf;        
@@ -353,14 +353,14 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             for (String directParentName : directParentNames) {
                 if (accumulator.add(directParentName)) {
                     CodegenModel parent = allModels.get(directParentName);                    
-                    _getAncestors(parent, allModels, accumulator);
+                    getAncestors(parent, allModels, accumulator);
                 }
             }
         }
     }
 
     //adapts codegen models and property to dart rules of inheritance
-    protected void _adaptToDartInheritance(Map<String, ModelsMap> objs) {
+    private void adaptToDartInheritance(Map<String, ModelsMap> objs) {
         //get all models
         Map<String, CodegenModel> allModels = new HashMap<>();
         for (ModelsMap modelsEntries : objs.values()) {
@@ -378,7 +378,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             Set<String> allAncestors = new HashSet<>();
             //get all ancestors
             // TODO: optimize this logic ?
-            _getAncestors(cm.getValue(), allModels, allAncestors);
+            getAncestors(cm.getValue(), allModels, allAncestors);
             //just in case, a model can't be its own ancestor
             allAncestors.remove(cm.getKey());
 
@@ -503,7 +503,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
     public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs) {
         objs = super.postProcessAllModels(objs);
         if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
-            _adaptToDartInheritance(objs);
+            adaptToDartInheritance(objs);
         }
         return objs;
     }
-- 
GitLab


From 3337374a68ec432044e62a22f3c8a5084c6a411f Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Fri, 8 Jul 2022 10:39:50 +0200
Subject: [PATCH 18/42] Follow java conventions

---
 .../codegen/languages/DartDioClientCodegen.java     | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 206b9ba3455..47a7277adb5 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -443,13 +443,12 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             // Set<String> directParentNames = cm.allOf == null ? new HashSet<>() : cm.allOf;
             Set<String> compositeProperties = new HashSet<>();
             
-            Set<String> compositeModelNames = new HashSet<String>() {
-                {
-                    addAll(ObjectUtils.firstNonNull(cm.oneOf, new HashSet<>()));
-                    addAll(ObjectUtils.firstNonNull(cm.anyOf, new HashSet<>()));
-                    addAll(allAncestors);
-                }
-            };
+            Set<String> compositeModelNames = new HashSet<String>();
+            compositeModelNames.addAll(ObjectUtils.firstNonNull(cm.oneOf, new HashSet<>()));
+            compositeModelNames.addAll(ObjectUtils.firstNonNull(cm.anyOf, new HashSet<>()));
+            compositeModelNames.addAll(allAncestors);
+            
+
             for (String compositeModelName : compositeModelNames) {
                 CodegenModel _model =  allModels.get(compositeModelName);
                 if (_model == null) continue;
-- 
GitLab


From 4ad403a9a746aa0e8e3dd85f9d111f3c42d66a35 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Wed, 27 Jul 2022 18:46:21 +0200
Subject: [PATCH 19/42] updated samples

---
 .../lib/src/model/cat.dart                                       | 1 +
 .../lib/src/model/dog.dart                                       | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart     | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart     | 1 +
 4 files changed, 4 insertions(+)

diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
index 9d79ad48220..7a19e1e19c9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
@@ -3,6 +3,7 @@
 //
 
 import 'package:openapi/src/model/animal.dart';
+import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:json_annotation/json_annotation.dart';
 
 part 'cat.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
index 62527c046b3..163e9dfc167 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 135942394c1..cca8194d176 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -3,6 +3,7 @@
 //
 
 import 'package:openapi/src/model/animal.dart';
+import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 36f18c65e63..2c16df6d030 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-- 
GitLab


From 554c7730594c06dca10a06d5531405c06c48f2ea Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Wed, 27 Jul 2022 18:55:24 +0200
Subject: [PATCH 20/42] update sampels 2

---
 .../docs/ChildCat.md                                  |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 11 ++++++-----
 .../OpenAPIClient-httpclient/docs/ChildCat.md         |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../OpenAPIClient-net47/docs/ChildCat.md              |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../OpenAPIClient-net5.0/docs/ChildCat.md             |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../csharp-netcore/OpenAPIClient/docs/ChildCat.md     |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../csharp-netcore/OpenAPIClientCore/docs/ChildCat.md |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../.openapi-generator/FILES                          |  3 ---
 .../java/org/openapitools/client/model/BigCat.java    |  1 +
 .../main/java/org/openapitools/client/model/Cat.java  |  1 +
 .../main/java/org/openapitools/client/model/Dog.java  |  1 +
 .../java/org/openapitools/client/model/BigCat.java    |  1 +
 .../main/java/org/openapitools/client/model/Cat.java  |  1 +
 .../main/java/org/openapitools/client/model/Dog.java  |  1 +
 .../client/model/AdditionalPropertiesClass.java       |  1 +
 .../main/java/org/openapitools/client/model/Cat.java  |  1 +
 .../main/java/org/openapitools/client/model/Dog.java  |  1 +
 .../java/org/openapitools/client/model/MapTest.java   |  1 +
 .../MixedPropertiesAndAdditionalPropertiesClass.java  |  1 +
 .../java/org/openapitools/client/model/BigCat.java    |  1 +
 .../main/java/org/openapitools/client/model/Cat.java  |  1 +
 .../main/java/org/openapitools/client/model/Dog.java  |  1 +
 .../java/org/openapitools/client/model/MapTest.java   |  1 +
 .../java/org/openapitools/client/model/BigCat.java    |  1 +
 .../main/java/org/openapitools/client/model/Cat.java  |  1 +
 .../java/org/openapitools/client/model/BigCat.java    |  1 +
 .../main/java/org/openapitools/client/model/Cat.java  |  1 +
 .../main/java/org/openapitools/client/model/Dog.java  |  1 +
 .../client/model/AdditionalPropertiesClass.java       |  1 +
 .../org/openapitools/client/model/ChildSchema.java    |  1 +
 .../client/model/MySchemaNameCharacters.java          |  1 +
 .../src/Org.OpenAPITools/Org.OpenAPITools.csproj      |  6 +++---
 .../src/Org.OpenAPITools/Org.OpenAPITools.csproj      |  6 +++---
 .../haskell-servant/lib/OpenAPIPetstore/Types.hs      |  1 -
 .../haskell-yesod/src/OpenAPIPetstore/Types.hs        |  1 -
 40 files changed, 66 insertions(+), 47 deletions(-)

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md
index 072ad05b36d..8ce6449e5f2 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs
index e5f952880eb..6358e859ce1 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -53,8 +53,8 @@ namespace Org.OpenAPITools.Model
         /// Gets or Sets PetType
         /// </summary>
 
-        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
-        public PetTypeEnum? PetType
+        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
+        public PetTypeEnum PetType
         {
             get{ return _PetType;}
             set
@@ -63,7 +63,7 @@ namespace Org.OpenAPITools.Model
                 _flagPetType = true;
             }
         }
-        private PetTypeEnum? _PetType;
+        private PetTypeEnum _PetType;
         private bool _flagPetType;
 
         /// <summary>
@@ -86,9 +86,10 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
         {
+            this._PetType = petType;
             this._Name = name;
             if (this.Name != null)
             {
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md
index 072ad05b36d..8ce6449e5f2 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs
index 2420d129554..a6603b7cb85 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -53,8 +53,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
-        public PetTypeEnum? PetType { get; set; }
+        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
+        public PetTypeEnum PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -67,11 +67,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
         {
-            this.Name = name;
             this.PetType = petType;
+            this.Name = name;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md
index 072ad05b36d..8ce6449e5f2 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs
index 4c60ed776cd..7a15a5297df 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
-        public PetTypeEnum? PetType { get; set; }
+        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
+        public PetTypeEnum PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -66,11 +66,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
         {
-            this.Name = name;
             this.PetType = petType;
+            this.Name = name;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md
index 072ad05b36d..8ce6449e5f2 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs
index 4c60ed776cd..7a15a5297df 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
-        public PetTypeEnum? PetType { get; set; }
+        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
+        public PetTypeEnum PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -66,11 +66,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
         {
-            this.Name = name;
             this.PetType = petType;
+            this.Name = name;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md
index 072ad05b36d..8ce6449e5f2 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs
index 4c60ed776cd..7a15a5297df 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
-        public PetTypeEnum? PetType { get; set; }
+        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
+        public PetTypeEnum PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -66,11 +66,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
         {
-            this.Name = name;
             this.PetType = petType;
+            this.Name = name;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md
index 072ad05b36d..8ce6449e5f2 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs
index c6c7222d7a6..d2b81927885 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
-        public PetTypeEnum? PetType { get; set; }
+        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
+        public PetTypeEnum PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -63,11 +63,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
         {
-            this.Name = name;
             this.PetType = petType;
+            this.Name = name;
         }
 
         /// <summary>
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES b/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES
index 9f81e159fbb..60d0f82fefd 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES
@@ -19,9 +19,6 @@ src/Org.OpenAPITools/Api/UserApi.cs
 src/Org.OpenAPITools/Client/ApiClient.cs
 src/Org.OpenAPITools/Client/ApiException.cs
 src/Org.OpenAPITools/Client/ApiResponse.cs
-src/Org.OpenAPITools/Client/Auth/OAuthAuthenticator.cs
-src/Org.OpenAPITools/Client/Auth/OAuthFlow.cs
-src/Org.OpenAPITools/Client/Auth/TokenResponse.cs
 src/Org.OpenAPITools/Client/ClientUtils.cs
 src/Org.OpenAPITools/Client/Configuration.cs
 src/Org.OpenAPITools/Client/ExceptionFactory.cs
diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java
index 31311ed0c5e..98c0976dde1 100644
--- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java
index 7269e26ddd1..63d17cd66fe 100644
--- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java
@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
+import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java
index 193f040fc58..5c80571af9d 100644
--- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java
index 3dd5d093da8..fbeb8d92d44 100644
--- a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java
index aeba3020544..28ca41828ee 100644
--- a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java
@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
+import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java
index 4fc1d940d2b..04f39fc411f 100644
--- a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
index ef8a8cf101a..2a26686a41c 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java
index d7bcd24a8ee..ab91619a10a 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java
index 193f040fc58..5c80571af9d 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java
index 3ee0b0ac017..e90dfe9029e 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
index 9f7331d1d28..f27f18fdcd2 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.OffsetDateTime;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import org.openapitools.client.model.Animal;
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java
index 31311ed0c5e..98c0976dde1 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java
index 7269e26ddd1..63d17cd66fe 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java
@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
+import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java
index 193f040fc58..5c80571af9d 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java
index 3ee0b0ac017..e90dfe9029e 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java
index 44ae5215a7f..68eba7be5f3 100644
--- a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java
index 50905164fad..73484afc2dc 100644
--- a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java
@@ -29,6 +29,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
+import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
 
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java
index 44ae5215a7f..68eba7be5f3 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java
index 50905164fad..73484afc2dc 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java
@@ -29,6 +29,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
+import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
 
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java
index 2e71892f7c0..da6c79f2fa3 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java
@@ -28,6 +28,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
 
diff --git a/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
index b9aae6a9309..5962b1ea54c 100644
--- a/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import org.openapitools.jackson.nullable.JsonNullable;
 import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java
index c040905be69..4f3257f9571 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java
@@ -31,6 +31,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.ChildSchemaAllOf;
 import org.openapitools.client.model.Parent;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java
index a360dff3ff7..4775d350c48 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java
@@ -31,6 +31,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.MySchemaNameCharactersAllOf;
 import org.openapitools.client.model.Parent;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj
index 518a6425bcb..0aaa1b25a4f 100644
--- a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj
+++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj
@@ -16,9 +16,9 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0"/>
     <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
-    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
+    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.0.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.0.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.0.0" />
     <PackageReference Include="JsonSubTypes" Version="1.8.0" />
   </ItemGroup>
   <ItemGroup>
diff --git a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj
index 518a6425bcb..0aaa1b25a4f 100644
--- a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj
+++ b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj
@@ -16,9 +16,9 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0"/>
     <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
-    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
+    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.0.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.0.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.0.0" />
     <PackageReference Include="JsonSubTypes" Version="1.8.0" />
   </ItemGroup>
   <ItemGroup>
diff --git a/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs b/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs
index 9a4bfb851ec..7c19368f7c2 100644
--- a/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs
+++ b/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs
@@ -193,7 +193,6 @@ removeFieldLabelPrefix forParsing prefix =
       , ("<=", "'Less_Than_Or_Equal_To")
       , (">=", "'Greater_Than_Or_Equal_To")
       , ("!=", "'Not_Equal")
-      , ("<>", "'Not_Equal")
       , ("~=", "'Tilde_Equal")
       , ("\\", "'Back_Slash")
       , ("\"", "'Double_Quote")
diff --git a/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs b/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs
index 5e9b72c8fac..7057e0e55da 100644
--- a/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs
+++ b/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs
@@ -163,7 +163,6 @@ removeFieldLabelPrefix forParsing prefix =
       , ("<=", "'Less_Than_Or_Equal_To")
       , (">=", "'Greater_Than_Or_Equal_To")
       , ("!=", "'Not_Equal")
-      , ("<>", "'Not_Equal")
       , ("~=", "'Tilde_Equal")
       , ("\\", "'Back_Slash")
       , ("\"", "'Double_Quote")
-- 
GitLab


From 1876b56dfc57f692b0aad10f090f3016a7845e71 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Wed, 27 Jul 2022 20:59:25 +0200
Subject: [PATCH 21/42] update samples 3 ...

---
 .../docs/ChildCat.md                                  |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 11 +++++------
 .../OpenAPIClient-httpclient/docs/ChildCat.md         |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../OpenAPIClient-net47/docs/ChildCat.md              |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../OpenAPIClient-net5.0/docs/ChildCat.md             |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../csharp-netcore/OpenAPIClient/docs/ChildCat.md     |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../csharp-netcore/OpenAPIClientCore/docs/ChildCat.md |  2 +-
 .../src/Org.OpenAPITools/Model/ChildCat.cs            | 10 +++++-----
 .../.openapi-generator/FILES                          |  3 +++
 .../java/org/openapitools/client/model/BigCat.java    |  1 -
 .../main/java/org/openapitools/client/model/Cat.java  |  1 -
 .../main/java/org/openapitools/client/model/Dog.java  |  1 -
 .../java/org/openapitools/client/model/BigCat.java    |  1 -
 .../main/java/org/openapitools/client/model/Cat.java  |  1 -
 .../main/java/org/openapitools/client/model/Dog.java  |  1 -
 .../client/model/AdditionalPropertiesClass.java       |  1 -
 .../main/java/org/openapitools/client/model/Cat.java  |  1 -
 .../main/java/org/openapitools/client/model/Dog.java  |  1 -
 .../java/org/openapitools/client/model/MapTest.java   |  1 -
 .../MixedPropertiesAndAdditionalPropertiesClass.java  |  1 -
 .../java/org/openapitools/client/model/BigCat.java    |  1 -
 .../main/java/org/openapitools/client/model/Cat.java  |  1 -
 .../main/java/org/openapitools/client/model/Dog.java  |  1 -
 .../java/org/openapitools/client/model/MapTest.java   |  1 -
 .../java/org/openapitools/client/model/BigCat.java    |  1 -
 .../main/java/org/openapitools/client/model/Cat.java  |  1 -
 .../java/org/openapitools/client/model/BigCat.java    |  1 -
 .../main/java/org/openapitools/client/model/Cat.java  |  1 -
 .../main/java/org/openapitools/client/model/Dog.java  |  1 -
 .../client/model/AdditionalPropertiesClass.java       |  1 -
 .../lib/src/model/entity.dart                         |  2 --
 .../lib/src/model/entity_ref.dart                     |  2 --
 .../lib/src/model/cat.dart                            |  1 -
 .../lib/src/model/dog.dart                            |  1 -
 .../petstore_client_lib_fake/lib/src/model/cat.dart   |  1 -
 .../petstore_client_lib_fake/lib/src/model/dog.dart   |  1 -
 .../org/openapitools/client/model/ChildSchema.java    |  1 -
 .../client/model/MySchemaNameCharacters.java          |  1 -
 .../src/Org.OpenAPITools/Org.OpenAPITools.csproj      |  6 +++---
 .../src/Org.OpenAPITools/Org.OpenAPITools.csproj      |  6 +++---
 .../haskell-servant/lib/OpenAPIPetstore/Types.hs      |  1 +
 .../haskell-yesod/src/OpenAPIPetstore/Types.hs        |  1 +
 46 files changed, 47 insertions(+), 74 deletions(-)

diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md
index 8ce6449e5f2..072ad05b36d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs
index 6358e859ce1..e5f952880eb 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -53,8 +53,8 @@ namespace Org.OpenAPITools.Model
         /// Gets or Sets PetType
         /// </summary>
 
-        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
-        public PetTypeEnum PetType
+        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
+        public PetTypeEnum? PetType
         {
             get{ return _PetType;}
             set
@@ -63,7 +63,7 @@ namespace Org.OpenAPITools.Model
                 _flagPetType = true;
             }
         }
-        private PetTypeEnum _PetType;
+        private PetTypeEnum? _PetType;
         private bool _flagPetType;
 
         /// <summary>
@@ -86,10 +86,9 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
         {
-            this._PetType = petType;
             this._Name = name;
             if (this.Name != null)
             {
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md
index 8ce6449e5f2..072ad05b36d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs
index a6603b7cb85..2420d129554 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-httpclient/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -53,8 +53,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
-        public PetTypeEnum PetType { get; set; }
+        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
+        public PetTypeEnum? PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -67,11 +67,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
         {
-            this.PetType = petType;
             this.Name = name;
+            this.PetType = petType;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md
index 8ce6449e5f2..072ad05b36d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs
index 7a15a5297df..4c60ed776cd 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
-        public PetTypeEnum PetType { get; set; }
+        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
+        public PetTypeEnum? PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -66,11 +66,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
         {
-            this.PetType = petType;
             this.Name = name;
+            this.PetType = petType;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md
index 8ce6449e5f2..072ad05b36d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs
index 7a15a5297df..4c60ed776cd 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net5.0/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
-        public PetTypeEnum PetType { get; set; }
+        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
+        public PetTypeEnum? PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -66,11 +66,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
         {
-            this.PetType = petType;
             this.Name = name;
+            this.PetType = petType;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md
index 8ce6449e5f2..072ad05b36d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs
index 7a15a5297df..4c60ed776cd 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
-        public PetTypeEnum PetType { get; set; }
+        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
+        public PetTypeEnum? PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -66,11 +66,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
         {
-            this.PetType = petType;
             this.Name = name;
+            this.PetType = petType;
             this.AdditionalProperties = new Dictionary<string, object>();
         }
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md
index 8ce6449e5f2..072ad05b36d 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/ChildCat.md
@@ -5,7 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **Name** | **string** |  | [optional] 
-**PetType** | **string** |  | [default to PetTypeEnum.ChildCat]
+**PetType** | **string** |  | [optional] [default to PetTypeEnum.ChildCat]
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs
index d2b81927885..c6c7222d7a6 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ChildCat.cs
@@ -52,8 +52,8 @@ namespace Org.OpenAPITools.Model
         /// <summary>
         /// Gets or Sets PetType
         /// </summary>
-        [DataMember(Name = "pet_type", IsRequired = true, EmitDefaultValue = false)]
-        public PetTypeEnum PetType { get; set; }
+        [DataMember(Name = "pet_type", EmitDefaultValue = false)]
+        public PetTypeEnum? PetType { get; set; }
         /// <summary>
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
@@ -63,11 +63,11 @@ namespace Org.OpenAPITools.Model
         /// Initializes a new instance of the <see cref="ChildCat" /> class.
         /// </summary>
         /// <param name="name">name.</param>
-        /// <param name="petType">petType (required) (default to PetTypeEnum.ChildCat).</param>
-        public ChildCat(string name = default(string), PetTypeEnum petType = PetTypeEnum.ChildCat) : base()
+        /// <param name="petType">petType (default to PetTypeEnum.ChildCat).</param>
+        public ChildCat(string name = default(string), PetTypeEnum? petType = PetTypeEnum.ChildCat) : base()
         {
-            this.PetType = petType;
             this.Name = name;
+            this.PetType = petType;
         }
 
         /// <summary>
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES b/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES
index 60d0f82fefd..9f81e159fbb 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCoreAndNet47/.openapi-generator/FILES
@@ -19,6 +19,9 @@ src/Org.OpenAPITools/Api/UserApi.cs
 src/Org.OpenAPITools/Client/ApiClient.cs
 src/Org.OpenAPITools/Client/ApiException.cs
 src/Org.OpenAPITools/Client/ApiResponse.cs
+src/Org.OpenAPITools/Client/Auth/OAuthAuthenticator.cs
+src/Org.OpenAPITools/Client/Auth/OAuthFlow.cs
+src/Org.OpenAPITools/Client/Auth/TokenResponse.cs
 src/Org.OpenAPITools/Client/ClientUtils.cs
 src/Org.OpenAPITools/Client/Configuration.cs
 src/Org.OpenAPITools/Client/ExceptionFactory.cs
diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java
index 98c0976dde1..31311ed0c5e 100644
--- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/BigCat.java
@@ -25,7 +25,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java
index 63d17cd66fe..7269e26ddd1 100644
--- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Cat.java
@@ -27,7 +27,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
-import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java
index 5c80571af9d..193f040fc58 100644
--- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
-import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java
index fbeb8d92d44..3dd5d093da8 100644
--- a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/BigCat.java
@@ -25,7 +25,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java
index 28ca41828ee..aeba3020544 100644
--- a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Cat.java
@@ -27,7 +27,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
-import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java
index 04f39fc411f..4fc1d940d2b 100644
--- a/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/feign-no-nullable/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
-import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
index 2a26686a41c..ef8a8cf101a 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
@@ -23,7 +23,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java
index ab91619a10a..d7bcd24a8ee 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Cat.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
-import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java
index 5c80571af9d..193f040fc58 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
-import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java
index e90dfe9029e..3ee0b0ac017 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MapTest.java
@@ -23,7 +23,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
index f27f18fdcd2..9f7331d1d28 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -24,7 +24,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.OffsetDateTime;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import org.openapitools.client.model.Animal;
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java
index 98c0976dde1..31311ed0c5e 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/BigCat.java
@@ -25,7 +25,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java
index 63d17cd66fe..7269e26ddd1 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Cat.java
@@ -27,7 +27,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
-import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java
index 5c80571af9d..193f040fc58 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/Dog.java
@@ -26,7 +26,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
-import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
 
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java
index e90dfe9029e..3ee0b0ac017 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/MapTest.java
@@ -23,7 +23,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.annotation.JsonTypeName;
diff --git a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java
index 68eba7be5f3..44ae5215a7f 100644
--- a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/BigCat.java
@@ -27,7 +27,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java
index 73484afc2dc..50905164fad 100644
--- a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/model/Cat.java
@@ -29,7 +29,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
-import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
 
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java
index 68eba7be5f3..44ae5215a7f 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java
@@ -27,7 +27,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.BigCatAllOf;
 import org.openapitools.client.model.Cat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java
index 73484afc2dc..50905164fad 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java
@@ -29,7 +29,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
 import org.openapitools.client.model.BigCat;
-import org.openapitools.client.model.CatAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
 
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java
index da6c79f2fa3..2e71892f7c0 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java
@@ -28,7 +28,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.openapitools.client.model.Animal;
-import org.openapitools.client.model.DogAllOf;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
 
diff --git a/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
index 5962b1ea54c..b9aae6a9309 100644
--- a/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
@@ -25,7 +25,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import org.openapitools.jackson.nullable.JsonNullable;
 import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
index 701e0e79429..809566729de 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
@@ -2,11 +2,9 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'package:openapi/src/model/extensible.dart';
 import 'package:openapi/src/model/pizza_speziale.dart';
 import 'package:openapi/src/model/foo.dart';
 import 'package:openapi/src/model/pizza.dart';
-import 'package:openapi/src/model/addressable.dart';
 import 'package:openapi/src/model/pasta.dart';
 import 'package:openapi/src/model/bar_create.dart';
 import 'package:openapi/src/model/bar.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
index d23b6149e3f..04980929fbd 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
@@ -2,9 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'package:openapi/src/model/extensible.dart';
 import 'package:openapi/src/model/bar_ref.dart';
-import 'package:openapi/src/model/addressable.dart';
 import 'package:openapi/src/model/foo_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
index 7a19e1e19c9..9d79ad48220 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
@@ -3,7 +3,6 @@
 //
 
 import 'package:openapi/src/model/animal.dart';
-import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:json_annotation/json_annotation.dart';
 
 part 'cat.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
index 163e9dfc167..62527c046b3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
@@ -2,7 +2,6 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index cca8194d176..135942394c1 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -3,7 +3,6 @@
 //
 
 import 'package:openapi/src/model/animal.dart';
-import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 2c16df6d030..36f18c65e63 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -2,7 +2,6 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
-import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java
index 4f3257f9571..c040905be69 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java
@@ -31,7 +31,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.ChildSchemaAllOf;
 import org.openapitools.client.model.Parent;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java
index 4775d350c48..a360dff3ff7 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java
@@ -31,7 +31,6 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
 import com.fasterxml.jackson.annotation.JsonValue;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.openapitools.client.model.MySchemaNameCharactersAllOf;
 import org.openapitools.client.model.Parent;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import org.openapitools.client.JSON;
diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj
index 0aaa1b25a4f..518a6425bcb 100644
--- a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj
+++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj
@@ -16,9 +16,9 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0"/>
     <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
-    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.0.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.0.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.0.0" />
+    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
     <PackageReference Include="JsonSubTypes" Version="1.8.0" />
   </ItemGroup>
   <ItemGroup>
diff --git a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj
index 0aaa1b25a4f..518a6425bcb 100644
--- a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj
+++ b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj
@@ -16,9 +16,9 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0"/>
     <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
-    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.0.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.0.0"/>
-    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.0.0" />
+    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0"/>
+    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
     <PackageReference Include="JsonSubTypes" Version="1.8.0" />
   </ItemGroup>
   <ItemGroup>
diff --git a/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs b/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs
index 7c19368f7c2..9a4bfb851ec 100644
--- a/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs
+++ b/samples/server/petstore/haskell-servant/lib/OpenAPIPetstore/Types.hs
@@ -193,6 +193,7 @@ removeFieldLabelPrefix forParsing prefix =
       , ("<=", "'Less_Than_Or_Equal_To")
       , (">=", "'Greater_Than_Or_Equal_To")
       , ("!=", "'Not_Equal")
+      , ("<>", "'Not_Equal")
       , ("~=", "'Tilde_Equal")
       , ("\\", "'Back_Slash")
       , ("\"", "'Double_Quote")
diff --git a/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs b/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs
index 7057e0e55da..5e9b72c8fac 100644
--- a/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs
+++ b/samples/server/petstore/haskell-yesod/src/OpenAPIPetstore/Types.hs
@@ -163,6 +163,7 @@ removeFieldLabelPrefix forParsing prefix =
       , ("<=", "'Less_Than_Or_Equal_To")
       , (">=", "'Greater_Than_Or_Equal_To")
       , ("!=", "'Not_Equal")
+      , ("<>", "'Not_Equal")
       , ("~=", "'Tilde_Equal")
       , ("\\", "'Back_Slash")
       , ("\"", "'Double_Quote")
-- 
GitLab


From 54c4727e2cb6618dadd494ace4e551f43cb36e50 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 28 Jul 2022 20:11:53 +0200
Subject: [PATCH 22/42] fix underscores

---
 .../languages/DartDioClientCodegen.java       | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 47a7277adb5..0b719fa95f5 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -450,11 +450,11 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             
 
             for (String compositeModelName : compositeModelNames) {
-                CodegenModel _model =  allModels.get(compositeModelName);
-                if (_model == null) continue;
-                List<CodegenProperty> _allVars = ObjectUtils.firstNonNull(_model.getAllVars(), new ArrayList<>());
-                for (CodegenProperty _prop : _allVars  ) {
-                    compositeProperties.add(_prop.getName());
+                CodegenModel model =  allModels.get(compositeModelName);
+                if (model == null) continue;
+                List<CodegenProperty> allVars = ObjectUtils.firstNonNull(model.getAllVars(), new ArrayList<>());
+                for (CodegenProperty prop : allVars  ) {
+                    compositeProperties.add(prop.getName());
                 }
             }
             //dart classes declare selfOnlyProperties as direct members (they exist in "vars")
@@ -479,10 +479,10 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                     ancestorOnlyProperties.put(prop.getName(), prop);
                 }
             }
-            for (CodegenProperty _var : cm.getVars()) {
-                _var.isInherited = ancestorOnlyProperties.containsKey(_var.getName());
-                if (!_var.isInherited && !compositeProperties.contains(_var.getName())) {
-                    selfOnlyProperties.put(_var.getName(), _var);
+            for (CodegenProperty p : cm.getVars()) {
+                p.isInherited = ancestorOnlyProperties.containsKey(p.getName());
+                if (!p.isInherited && !compositeProperties.contains(p.getName())) {
+                    selfOnlyProperties.put(p.getName(), p);
                 }
             }
             selfAndAncestorOnlyProperties.putAll(selfOnlyProperties);
@@ -495,6 +495,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             cm.vendorExtensions.put(kHasAncestorOnlyProps, !ancestorOnlyProperties.isEmpty());
             cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, selfAndAncestorOnlyProperties.values());
             cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps,  !selfAndAncestorOnlyProperties.isEmpty());
+            //cm.imports.addAll(rewriteImports(allAncestors, true));
         }
     }
 
-- 
GitLab


From 5296bcf41936152194930e64ddbce77476a9ed7c Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 28 Jul 2022 20:38:54 +0200
Subject: [PATCH 23/42] fixed missing imports from java code

---
 .../languages/DartDioClientCodegen.java       | 116 ++++++++++--------
 1 file changed, 62 insertions(+), 54 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 0b719fa95f5..514bd6ce6d3 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -345,23 +345,23 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
     }
 
     /// Gets all ancestors of a given model, and puts it in accumulator
-    private void getAncestors(CodegenModel cm, Map<String,CodegenModel> allModels, Set<String> accumulator) {
-       
-        //get direct parents
-        Set<String> directParentNames = cm.allOf;        
+    private void getAncestors(CodegenModel cm, Map<String, CodegenModel> allModels, Set<String> accumulator) {
+
+        // get direct parents
+        Set<String> directParentNames = cm.allOf;
         if (directParentNames != null && !directParentNames.isEmpty()) {
             for (String directParentName : directParentNames) {
                 if (accumulator.add(directParentName)) {
-                    CodegenModel parent = allModels.get(directParentName);                    
+                    CodegenModel parent = allModels.get(directParentName);
                     getAncestors(parent, allModels, accumulator);
                 }
             }
         }
     }
 
-    //adapts codegen models and property to dart rules of inheritance
+    // adapts codegen models and property to dart rules of inheritance
     private void adaptToDartInheritance(Map<String, ModelsMap> objs) {
-        //get all models
+        // get all models
         Map<String, CodegenModel> allModels = new HashMap<>();
         for (ModelsMap modelsEntries : objs.values()) {
             for (ModelMap modelsMap : modelsEntries.getModels()) {
@@ -369,17 +369,17 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                 allModels.put(model.getClassname(), model);
             }
         }
-        
-        //all ancestors
+
+        // all ancestors
         Set<String> allAncestorsForAllModelsFlat = new HashSet<>();
-        //maps a model to its ancestors
+        // maps a model to its ancestors
         Map<String, Set<String>> allAncestorsForAllModels = new HashMap<>();
-        for (java.util.Map.Entry<String,CodegenModel> cm : allModels.entrySet()) {
+        for (java.util.Map.Entry<String, CodegenModel> cm : allModels.entrySet()) {
             Set<String> allAncestors = new HashSet<>();
-            //get all ancestors
+            // get all ancestors
             // TODO: optimize this logic ?
             getAncestors(cm.getValue(), allModels, allAncestors);
-            //just in case, a model can't be its own ancestor
+            // just in case, a model can't be its own ancestor
             allAncestors.remove(cm.getKey());
 
             allAncestorsForAllModels.put(cm.getKey(), allAncestors);
@@ -397,85 +397,89 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
         final String kHasSelfAndAncestorOnlyProps = "x-has-self-and-ancestor-only-props";
 
         Set<String> allPureClasses = new HashSet<>();
-        //set isChild,isParent,isPure
-        for (java.util.Map.Entry<String,CodegenModel> cmEntry : allModels.entrySet()) {
+        // set isChild,isParent,isPure
+        for (java.util.Map.Entry<String, CodegenModel> cmEntry : allModels.entrySet()) {
             String key = cmEntry.getKey();
             CodegenModel cm = cmEntry.getValue();
-            //get all ancestors
+            // get all ancestors
             Set<String> allAncestors = allAncestorsForAllModels.get(key);
-            
-            //a class is a parent when it's an ancestor to another class
+
+            // a class is a parent when it's an ancestor to another class
             boolean isParent = allAncestorsForAllModelsFlat.contains(key);
-            //a class is a child when it has any ancestor
+            // a class is a child when it has any ancestor
             boolean isChild = !allAncestors.isEmpty();
-            //a class is pure when it's not a child, and has no oneOf nor anyOf
-            boolean isPure = !isChild && (cm.oneOf == null || cm.oneOf.isEmpty()) && (cm.anyOf == null || cm.anyOf.isEmpty()) ;
-            
+            // a class is pure when it's not a child, and has no oneOf nor anyOf
+            boolean isPure = !isChild && (cm.oneOf == null || cm.oneOf.isEmpty())
+                    && (cm.anyOf == null || cm.anyOf.isEmpty());
+
             cm.vendorExtensions.put(kIsChild, isChild);
             cm.vendorExtensions.put(kIsParent, isParent);
             cm.vendorExtensions.put(kIsPure, isPure);
-            //when pure:
-            //vars = allVars = selfOnlyProperties = kSelfAndAncestorOnlyProps
-            //ancestorOnlyProps = empty
+            // when pure:
+            // vars = allVars = selfOnlyProperties = kSelfAndAncestorOnlyProps
+            // ancestorOnlyProps = empty
             if (isPure) {
                 cm.vendorExtensions.put(kSelfOnlyProps, cm.getVars());
                 cm.vendorExtensions.put(kHasSelfOnlyProps, !cm.getVars().isEmpty());
                 cm.vendorExtensions.put(kAncestorOnlyProps, new ArrayList<CodegenProperty>());
                 cm.vendorExtensions.put(kHasAncestorOnlyProps, false);
-                cm.vendorExtensions.put(kSelfAndAncestorOnlyProps,  cm.getVars());
-                cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps,  !cm.getVars().isEmpty());
+                cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, cm.getVars());
+                cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps, !cm.getVars().isEmpty());
 
                 allPureClasses.add(key);
             }
         }
 
-        //handle impure models
-        for (java.util.Map.Entry<String,CodegenModel> cmEntry : allModels.entrySet()) {
+        // handle impure models
+        for (java.util.Map.Entry<String, CodegenModel> cmEntry : allModels.entrySet()) {
             String key = cmEntry.getKey();
             CodegenModel cm = cmEntry.getValue();
             if (allPureClasses.contains(key)) {
                 continue;
             }
-            //get all ancestors
+            // get all ancestors
             Set<String> allAncestors = allAncestorsForAllModels.get(key);
-         
-            //get direct parents
-            // Set<String> directParentNames = cm.allOf == null ? new HashSet<>() : cm.allOf;
+
+            // get direct parents
+            // Set<String> directParentNames = cm.allOf == null ? new HashSet<>() :
+            // cm.allOf;
             Set<String> compositeProperties = new HashSet<>();
-            
+
             Set<String> compositeModelNames = new HashSet<String>();
             compositeModelNames.addAll(ObjectUtils.firstNonNull(cm.oneOf, new HashSet<>()));
             compositeModelNames.addAll(ObjectUtils.firstNonNull(cm.anyOf, new HashSet<>()));
             compositeModelNames.addAll(allAncestors);
-            
 
             for (String compositeModelName : compositeModelNames) {
-                CodegenModel model =  allModels.get(compositeModelName);
-                if (model == null) continue;
+                CodegenModel model = allModels.get(compositeModelName);
+                if (model == null)
+                    continue;
                 List<CodegenProperty> allVars = ObjectUtils.firstNonNull(model.getAllVars(), new ArrayList<>());
-                for (CodegenProperty prop : allVars  ) {
+                for (CodegenProperty prop : allVars) {
                     compositeProperties.add(prop.getName());
                 }
             }
-            //dart classes declare selfOnlyProperties as direct members (they exist in "vars")
-            //for pure models, this will equal vars
+            // dart classes declare selfOnlyProperties as direct members (they exist in
+            // "vars")
+            // for pure models, this will equal vars
             Map<String, CodegenProperty> selfOnlyProperties = new HashMap<>();
-            
-            //ancestorOnlyProperties are properties defined by all ancestors
-            //NOTE: oneOf,anyOf are NOT considered ancestors
-            //since a child in dart must implment ALL OF the parent (using implements)
+
+            // ancestorOnlyProperties are properties defined by all ancestors
+            // NOTE: oneOf,anyOf are NOT considered ancestors
+            // since a child in dart must implment ALL OF the parent (using implements)
             Map<String, CodegenProperty> ancestorOnlyProperties = new HashMap<>();
-            
-            //combines both selfOnlyProperties and ancestorOnlyProperties 
-            //this will be used by the custom serializer as "x-handled-vars" and "x-has-handled-vars"
+
+            // combines both selfOnlyProperties and ancestorOnlyProperties
+            // this will be used by the custom serializer as "x-handled-vars" and
+            // "x-has-handled-vars"
             Map<String, CodegenProperty> selfAndAncestorOnlyProperties = new HashMap<>();
-            
-            //STEP 1: calculating selfOnlyProperties
-            //get all vars of all ancestors and add them to ancestorPropNames
+
+            // STEP 1: calculating selfOnlyProperties
+            // get all vars of all ancestors and add them to ancestorPropNames
             // Set<String> _ancestorPropNames = new HashSet<>();
             for (String ancestorKey : allAncestors) {
                 CodegenModel ancestorCM = allModels.get(ancestorKey);
-                for (CodegenProperty prop : ancestorCM.getVars()) {                    
+                for (CodegenProperty prop : ancestorCM.getVars()) {
                     ancestorOnlyProperties.put(prop.getName(), prop);
                 }
             }
@@ -488,14 +492,18 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             selfAndAncestorOnlyProperties.putAll(selfOnlyProperties);
             selfAndAncestorOnlyProperties.putAll(ancestorOnlyProperties);
 
-
             cm.vendorExtensions.put(kSelfOnlyProps, selfOnlyProperties.values());
             cm.vendorExtensions.put(kHasSelfOnlyProps, !selfOnlyProperties.isEmpty());
             cm.vendorExtensions.put(kAncestorOnlyProps, ancestorOnlyProperties.values());
             cm.vendorExtensions.put(kHasAncestorOnlyProps, !ancestorOnlyProperties.isEmpty());
             cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, selfAndAncestorOnlyProperties.values());
-            cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps,  !selfAndAncestorOnlyProperties.isEmpty());
-            //cm.imports.addAll(rewriteImports(allAncestors, true));
+            cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps, !selfAndAncestorOnlyProperties.isEmpty());
+            // fixes missing imports
+            Set<String> interfaceImports = new HashSet<String>();
+            interfaceImports.addAll(cm.allOf);
+            interfaceImports.addAll(cm.oneOf);
+            interfaceImports.addAll(cm.anyOf);
+            cm.imports.addAll(rewriteImports(interfaceImports, true));
         }
     }
 
-- 
GitLab


From a4fa11cb3e96385d3f3b1450fff17cd9daab82b3 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 28 Jul 2022 20:39:09 +0200
Subject: [PATCH 24/42] update config names

---
 ...ance.yaml => dart-dio-oneof-polymorphism-and-inheritance.yaml} | 0
 ...io-next-oneof-primitive.yaml => dart-dio-oneof-primitive.yaml} | 0
 bin/configs/{dart-dio-next-oneof.yaml => dart-dio-oneof.yaml}     | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
 rename bin/configs/{dart-dio-next-oneof-polymorphism-and-inheritance.yaml => dart-dio-oneof-polymorphism-and-inheritance.yaml} (100%)
 rename bin/configs/{dart-dio-next-oneof-primitive.yaml => dart-dio-oneof-primitive.yaml} (100%)
 rename bin/configs/{dart-dio-next-oneof.yaml => dart-dio-oneof.yaml} (100%)

diff --git a/bin/configs/dart-dio-next-oneof-polymorphism-and-inheritance.yaml b/bin/configs/dart-dio-oneof-polymorphism-and-inheritance.yaml
similarity index 100%
rename from bin/configs/dart-dio-next-oneof-polymorphism-and-inheritance.yaml
rename to bin/configs/dart-dio-oneof-polymorphism-and-inheritance.yaml
diff --git a/bin/configs/dart-dio-next-oneof-primitive.yaml b/bin/configs/dart-dio-oneof-primitive.yaml
similarity index 100%
rename from bin/configs/dart-dio-next-oneof-primitive.yaml
rename to bin/configs/dart-dio-oneof-primitive.yaml
diff --git a/bin/configs/dart-dio-next-oneof.yaml b/bin/configs/dart-dio-oneof.yaml
similarity index 100%
rename from bin/configs/dart-dio-next-oneof.yaml
rename to bin/configs/dart-dio-oneof.yaml
-- 
GitLab


From 40aa4ac373358a0aae174ba399025625c1e5b84a Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Thu, 28 Jul 2022 20:49:54 +0200
Subject: [PATCH 25/42] updated samples

---
 .../lib/src/model/entity.dart                                   | 2 ++
 .../lib/src/model/entity_ref.dart                               | 2 ++
 .../dart-dio/oneof_primitive/lib/src/model/example.dart         | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart    | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart    | 1 +
 5 files changed, 7 insertions(+)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
index 809566729de..701e0e79429 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
@@ -2,9 +2,11 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'package:openapi/src/model/extensible.dart';
 import 'package:openapi/src/model/pizza_speziale.dart';
 import 'package:openapi/src/model/foo.dart';
 import 'package:openapi/src/model/pizza.dart';
+import 'package:openapi/src/model/addressable.dart';
 import 'package:openapi/src/model/pasta.dart';
 import 'package:openapi/src/model/bar_create.dart';
 import 'package:openapi/src/model/bar.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
index 04980929fbd..d23b6149e3f 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
@@ -2,7 +2,9 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'package:openapi/src/model/extensible.dart';
 import 'package:openapi/src/model/bar_ref.dart';
+import 'package:openapi/src/model/addressable.dart';
 import 'package:openapi/src/model/foo_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
index 713811ea335..cb68e510f1f 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
@@ -3,6 +3,7 @@
 //
 
 import 'package:openapi/src/model/child.dart';
+import 'dart:core';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 135942394c1..cca8194d176 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -3,6 +3,7 @@
 //
 
 import 'package:openapi/src/model/animal.dart';
+import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 36f18c65e63..2c16df6d030 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-- 
GitLab


From e7ad24036944fa5e4a4ff0a1a383fbf2cfb50b38 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 21 Aug 2022 14:37:41 +0200
Subject: [PATCH 26/42] updated built_value deps

---
 .../src/main/resources/dart/libraries/dio/pubspec.mustache  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
index 6a508d3c0d7..4faed4e3dc4 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
@@ -16,8 +16,8 @@ dependencies:
 {{#useBuiltValue}}
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
-  built_value: '>=8.1.0 <9.0.0'
-  built_collection: '>=5.1.0 <6.0.0'
+  built_value: '>=8.4.0 <9.0.0'
+  built_collection: '>=5.1.1 <6.0.0'
 {{/useBuiltValue}}
 {{#useJsonSerializable}}
   json_annotation: '^4.4.0'
@@ -28,7 +28,7 @@ dependencies:
 
 dev_dependencies:
 {{#useBuiltValue}}
-  built_value_generator: '>=8.1.0 <9.0.0'
+  built_value_generator: '>=8.4.0 <9.0.0'
   build_runner: any
 {{/useBuiltValue}}
 {{#useJsonSerializable}}
-- 
GitLab


From e3f7b39415f8104e34d08497d64a6ee3fccb2bc7 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 21 Aug 2022 14:48:50 +0200
Subject: [PATCH 27/42] regen samples

---
 .../petstore/dart-dio/oneof/pubspec.yaml      |   6 +-
 .../pubspec.yaml                              |   6 +-
 .../dart-dio/oneof_primitive/pubspec.yaml     |   6 +-
 .../lib/src/model/all_of_with_single_ref.dart | 161 +++++++++---------
 .../petstore_client_lib_fake/pubspec.yaml     |   6 +-
 5 files changed, 89 insertions(+), 96 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
index 00074c53a93..fb676f65c39 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/pubspec.yaml
@@ -10,10 +10,10 @@ dependencies:
   dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
-  built_value: '>=8.1.0 <9.0.0'
-  built_collection: '>=5.1.0 <6.0.0'
+  built_value: '>=8.4.0 <9.0.0'
+  built_collection: '>=5.1.1 <6.0.0'
 
 dev_dependencies:
-  built_value_generator: '>=8.1.0 <9.0.0'
+  built_value_generator: '>=8.4.0 <9.0.0'
   build_runner: any
   test: ^1.16.0
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
index 00074c53a93..fb676f65c39 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pubspec.yaml
@@ -10,10 +10,10 @@ dependencies:
   dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
-  built_value: '>=8.1.0 <9.0.0'
-  built_collection: '>=5.1.0 <6.0.0'
+  built_value: '>=8.4.0 <9.0.0'
+  built_collection: '>=5.1.1 <6.0.0'
 
 dev_dependencies:
-  built_value_generator: '>=8.1.0 <9.0.0'
+  built_value_generator: '>=8.4.0 <9.0.0'
   build_runner: any
   test: ^1.16.0
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
index 00074c53a93..fb676f65c39 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pubspec.yaml
@@ -10,10 +10,10 @@ dependencies:
   dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
-  built_value: '>=8.1.0 <9.0.0'
-  built_collection: '>=5.1.0 <6.0.0'
+  built_value: '>=8.4.0 <9.0.0'
+  built_collection: '>=5.1.1 <6.0.0'
 
 dev_dependencies:
-  built_value_generator: '>=8.1.0 <9.0.0'
+  built_value_generator: '>=8.4.0 <9.0.0'
   build_runner: any
   test: ^1.16.0
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index 171e8c9a38a..0fd6d72e34a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -14,98 +14,91 @@ part 'all_of_with_single_ref.g.dart';
 /// AllOfWithSingleRef
 ///
 /// Properties:
-/// * [username]
-/// * [singleRefType]
+/// * [username] 
+/// * [singleRefType] 
 @BuiltValue()
-abstract class AllOfWithSingleRef
-    implements Built<AllOfWithSingleRef, AllOfWithSingleRefBuilder> {
-  @BuiltValueField(wireName: r'username')
-  String? get username;
-  @BuiltValueField(wireName: r'SingleRefType')
-  SingleRefType? get singleRefType;
+abstract class AllOfWithSingleRef implements Built<AllOfWithSingleRef, AllOfWithSingleRefBuilder> {
+    @BuiltValueField(wireName: r'username')
+    String? get username;
+    @BuiltValueField(wireName: r'SingleRefType')
+    SingleRefType? get singleRefType;
 
-  AllOfWithSingleRef._();
 
-  factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) =
-      _$AllOfWithSingleRef;
+    AllOfWithSingleRef._();
+    
+    factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
+
+    @BuiltValueHook(initializeBuilder: true)
+    static void _defaults(AllOfWithSingleRefBuilder b) => b;
+
+    @BuiltValueSerializer(custom: true)
+    static Serializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
 
-  @BuiltValueHook(initializeBuilder: true)
-  static void _defaults(AllOfWithSingleRefBuilder b) => b;
 
-  @BuiltValueSerializer(custom: true)
-  static Serializer<AllOfWithSingleRef> get serializer =>
-      _$AllOfWithSingleRefSerializer();
 }
 
-class _$AllOfWithSingleRefSerializer
-    implements PrimitiveSerializer<AllOfWithSingleRef> {
-  @override
-  final Iterable<Type> types = const [AllOfWithSingleRef, _$AllOfWithSingleRef];
-
-  @override
-  final String wireName = r'AllOfWithSingleRef';
-
-  Iterable<Object?> _serializeProperties(
-      Serializers serializers, AllOfWithSingleRef object,
-      {FullType specifiedType = FullType.unspecified}) sync* {
-    if (object.username != null) {
-      yield r'username';
-      yield serializers.serialize(object.username,
-          specifiedType: const FullType(String));
+class _$AllOfWithSingleRefSerializer implements PrimitiveSerializer<AllOfWithSingleRef> {
+    @override
+    final Iterable<Type> types = const [AllOfWithSingleRef, _$AllOfWithSingleRef];
+
+    @override
+    final String wireName = r'AllOfWithSingleRef';
+
+    Iterable<Object?> _serializeProperties(Serializers serializers, AllOfWithSingleRef object,
+        {FullType specifiedType = FullType.unspecified}) sync* {        
+        if (object.username != null) {
+            yield r'username';
+            yield serializers.serialize(object.username,
+                    specifiedType: const FullType(String));
+        }
+        if (object.singleRefType != null) {
+            yield r'SingleRefType';
+            yield serializers.serialize(object.singleRefType,
+                    specifiedType: const FullType(SingleRefType));
+        }
     }
-    if (object.singleRefType != null) {
-      yield r'SingleRefType';
-      yield serializers.serialize(object.singleRefType,
-          specifiedType: const FullType.nullable(SingleRefType));
+
+    @override
+    Object serialize(Serializers serializers, AllOfWithSingleRef object,
+        {FullType specifiedType = FullType.unspecified}) {
+        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
     }
-  }
-
-  @override
-  Object serialize(Serializers serializers, AllOfWithSingleRef object,
-      {FullType specifiedType = FullType.unspecified}) {
-    return _serializeProperties(serializers, object,
-            specifiedType: specifiedType)
-        .toList();
-  }
-
-  void _deserializeProperties(Serializers serializers, Object serialized,
-      {FullType specifiedType = FullType.unspecified,
-      required List<Object?> serializedList,
-      required AllOfWithSingleRefBuilder result,
-      required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-      final key = serializedList[i] as String;
-      final value = serializedList[i + 1];
-      switch (key) {
-        case r'username':
-          final valueDes = serializers.deserialize(value,
-              specifiedType: const FullType(String)) as String;
-          result.username = valueDes;
-          break;
-        case r'SingleRefType':
-          final valueDes = serializers.deserialize(value,
-              specifiedType: const FullType(SingleRefType)) as SingleRefType;
-          result.singleRefType = valueDes;
-          break;
-        default:
-          unhandled.add(key);
-          unhandled.add(value);
-          break;
-      }
+
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AllOfWithSingleRefBuilder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                 case r'username':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(String)) as String;
+                    result.username = valueDes;
+                    break;
+                 case r'SingleRefType':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const FullType(SingleRefType)) as SingleRefType;
+                    result.singleRefType = valueDes;
+                    break;
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
+    
+    @override
+    AllOfWithSingleRef deserialize(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified}) {
+        final result = AllOfWithSingleRefBuilder();
+        final serializedList = (serialized as Iterable<Object?>).toList();        
+        final unhandled = <Object?>[];
+        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
+        return result.build();
     }
-  }
-
-  @override
-  AllOfWithSingleRef deserialize(Serializers serializers, Object serialized,
-      {FullType specifiedType = FullType.unspecified}) {
-    final result = AllOfWithSingleRefBuilder();
-    final serializedList = (serialized as Iterable<Object?>).toList();
-    final unhandled = <Object?>[];
-    _deserializeProperties(serializers, serialized,
-        specifiedType: specifiedType,
-        serializedList: serializedList,
-        unhandled: unhandled,
-        result: result);
-    return result.build();
-  }
 }
+
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml
index 00074c53a93..fb676f65c39 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/pubspec.yaml
@@ -10,10 +10,10 @@ dependencies:
   dio: '>=4.0.1 <5.0.0'
   one_of: '>=1.5.0 <2.0.0'
   one_of_serializer: '>=1.5.0 <2.0.0'
-  built_value: '>=8.1.0 <9.0.0'
-  built_collection: '>=5.1.0 <6.0.0'
+  built_value: '>=8.4.0 <9.0.0'
+  built_collection: '>=5.1.1 <6.0.0'
 
 dev_dependencies:
-  built_value_generator: '>=8.1.0 <9.0.0'
+  built_value_generator: '>=8.4.0 <9.0.0'
   build_runner: any
   test: ^1.16.0
-- 
GitLab


From d8ec18597976c15616c40dfdba2364161b5d3863 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 21 Aug 2022 18:56:40 +0200
Subject: [PATCH 28/42] workaround built_value abstract builders
 google/built_value.dart#1180

---
 .../languages/DartDioClientCodegen.java       | 62 ++++++++++++++-----
 .../built_value/class_concrete.mustache       | 46 +-------------
 .../built_value/class_serializer.mustache     | 45 +-------------
 .../deserialize_properties.mustache           | 49 +++++++++++++++
 4 files changed, 100 insertions(+), 102 deletions(-)
 create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 514bd6ce6d3..5c65f657d70 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -359,6 +359,47 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
         }
     }
 
+    private void syncRootTypesWithInnerVars(Map<String, ModelsMap> objs) {
+        Map<String, CodegenModel> allModels = new HashMap<>();
+        for (ModelsMap modelsEntries : objs.values()) {
+            for (ModelMap modelsMap : modelsEntries.getModels()) {
+                CodegenModel model = modelsMap.getModel();
+                allModels.put(model.getClassname(), model);
+            }
+        }
+
+        for (CodegenModel model : allModels.values()) {            
+            syncRootTypesWithInnerVars(allModels, model);
+        }
+    }
+    private void syncRootTypesWithInnerVars(Map<String, CodegenModel> objs, CodegenModel model) {
+        List<CodegenProperty> allVars = new ArrayList<>();        
+        allVars.addAll(((Collection<CodegenProperty>) model.vendorExtensions.get(kSelfAndAncestorOnlyProps)));
+        allVars.addAll(((Collection<CodegenProperty>) model.vendorExtensions.get(kSelfOnlyProps)));
+        allVars.addAll(((Collection<CodegenProperty>) model.vendorExtensions.get(kAncestorOnlyProps)));
+
+        for (CodegenProperty prop : allVars) {
+            //check if type exists in parent map
+            String type = prop.openApiType;
+            if (objs.containsKey(type)) {
+                //get the type
+                CodegenModel relatedModel = objs.get(type);
+                //fill the property's VendorExtensions with the type's VendorExtensions
+                prop.getVendorExtensions().put(kIsParent, relatedModel.getVendorExtensions().get(kIsParent));
+                
+            }            
+        }
+    }
+    private final String kIsChild = "x-is-child";
+    private final String kIsParent = "x-is-parent";
+    private final String kIsPure = "x-is-pure";
+    private final String kSelfOnlyProps = "x-self-only-props";
+    private final String kHasSelfOnlyProps = "x-has-self-only-props";
+    private final String kAncestorOnlyProps = "x-ancestor-only-props";
+    private final String kHasAncestorOnlyProps = "x-has-ancestor-only-props";
+    private final String kSelfAndAncestorOnlyProps = "x-self-and-ancestor-only-props";
+    private final String kHasSelfAndAncestorOnlyProps = "x-has-self-and-ancestor-only-props";
+    
     // adapts codegen models and property to dart rules of inheritance
     private void adaptToDartInheritance(Map<String, ModelsMap> objs) {
         // get all models
@@ -386,15 +427,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             allAncestorsForAllModelsFlat.addAll(allAncestors);
         }
 
-        final String kIsChild = "x-is-child";
-        final String kIsParent = "x-is-parent";
-        final String kIsPure = "x-is-pure";
-        final String kSelfOnlyProps = "x-self-only-props";
-        final String kHasSelfOnlyProps = "x-has-self-only-props";
-        final String kAncestorOnlyProps = "x-ancestor-only-props";
-        final String kHasAncestorOnlyProps = "x-has-ancestor-only-props";
-        final String kSelfAndAncestorOnlyProps = "x-self-and-ancestor-only-props";
-        final String kHasSelfAndAncestorOnlyProps = "x-has-self-and-ancestor-only-props";
+        
 
         Set<String> allPureClasses = new HashSet<>();
         // set isChild,isParent,isPure
@@ -419,11 +452,11 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             // vars = allVars = selfOnlyProperties = kSelfAndAncestorOnlyProps
             // ancestorOnlyProps = empty
             if (isPure) {
-                cm.vendorExtensions.put(kSelfOnlyProps, cm.getVars());
+                cm.vendorExtensions.put(kSelfOnlyProps, new ArrayList<>(cm.getVars()));
                 cm.vendorExtensions.put(kHasSelfOnlyProps, !cm.getVars().isEmpty());
                 cm.vendorExtensions.put(kAncestorOnlyProps, new ArrayList<CodegenProperty>());
                 cm.vendorExtensions.put(kHasAncestorOnlyProps, false);
-                cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, cm.getVars());
+                cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, new ArrayList<>(cm.getVars()));
                 cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps, !cm.getVars().isEmpty());
 
                 allPureClasses.add(key);
@@ -492,11 +525,11 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
             selfAndAncestorOnlyProperties.putAll(selfOnlyProperties);
             selfAndAncestorOnlyProperties.putAll(ancestorOnlyProperties);
 
-            cm.vendorExtensions.put(kSelfOnlyProps, selfOnlyProperties.values());
+            cm.vendorExtensions.put(kSelfOnlyProps, new ArrayList<>(selfOnlyProperties.values()));
             cm.vendorExtensions.put(kHasSelfOnlyProps, !selfOnlyProperties.isEmpty());
-            cm.vendorExtensions.put(kAncestorOnlyProps, ancestorOnlyProperties.values());
+            cm.vendorExtensions.put(kAncestorOnlyProps, new ArrayList<>(ancestorOnlyProperties.values()));
             cm.vendorExtensions.put(kHasAncestorOnlyProps, !ancestorOnlyProperties.isEmpty());
-            cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, selfAndAncestorOnlyProperties.values());
+            cm.vendorExtensions.put(kSelfAndAncestorOnlyProps, new ArrayList<>(selfAndAncestorOnlyProperties.values()));
             cm.vendorExtensions.put(kHasSelfAndAncestorOnlyProps, !selfAndAncestorOnlyProperties.isEmpty());
             // fixes missing imports
             Set<String> interfaceImports = new HashSet<String>();
@@ -512,6 +545,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
         objs = super.postProcessAllModels(objs);
         if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
             adaptToDartInheritance(objs);
+            syncRootTypesWithInnerVars(objs);
         }
         return objs;
     }
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
index 0fb6bd12043..bac559f9aba 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
@@ -27,51 +27,9 @@ class _$${{classname}}Serializer implements PrimitiveSerializer<${{classname}}>
     }
 
     {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-    void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ${{classname}}Builder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                {{#vendorExtensions.x-self-and-ancestor-only-props}}
-                 case r'{{baseName}}':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
-                    {{#isNullable}}
-                    if (valueDes == null) continue;
-                    {{/isNullable}}
-                    {{#isContainer}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isContainer}}
-                    {{^isContainer}}
-                    {{#isEnum}}
-                    result.{{{name}}} = valueDes;
-                    {{/isEnum}}
-                    {{^isEnum}}
-                    {{#isModel}}
-                    {{#isPrimitiveType}}
-                    {{! These are models that have been manually marked as primitive via generator param. }}
-                    result.{{{name}}} = valueDes;
-                    {{/isPrimitiveType}}
-                    {{^isPrimitiveType}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isPrimitiveType}}
-                    {{/isModel}}
-                    {{^isModel}}
-                    result.{{{name}}} = valueDes;
-                    {{/isModel}}
-                    {{/isEnum}}
-                    {{/isContainer}}
-                    break;
-                {{/vendorExtensions.x-self-and-ancestor-only-props}}
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
-        }
-    }
+    {{>serialization/built_value/deserialize_properties}}
     {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    
     @override
     ${{classname}} deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
index 4e496e4da82..d93212f059e 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
@@ -77,50 +77,7 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
     }
 
     {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-    void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required {{classname}}Builder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                {{#vendorExtensions.x-self-and-ancestor-only-props}}
-                 case r'{{baseName}}':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
-                    {{#isNullable}}
-                    if (valueDes == null) continue;
-                    {{/isNullable}}
-                    {{#isContainer}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isContainer}}
-                    {{^isContainer}}
-                    {{#isEnum}}
-                    result.{{{name}}} = valueDes;
-                    {{/isEnum}}
-                    {{^isEnum}}
-                    {{#isModel}}
-                    {{#isPrimitiveType}}
-                    {{! These are models that have been manually marked as primitive via generator param. }}
-                    result.{{{name}}} = valueDes;
-                    {{/isPrimitiveType}}
-                    {{^isPrimitiveType}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isPrimitiveType}}
-                    {{/isModel}}
-                    {{^isModel}}
-                    result.{{{name}}} = valueDes;
-                    {{/isModel}}
-                    {{/isEnum}}
-                    {{/isContainer}}
-                    break;
-                {{/vendorExtensions.x-self-and-ancestor-only-props}}
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
-        }
-    }
+    {{>serialization/built_value/deserialize_properties}}    
     {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
     
     @override
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
new file mode 100644
index 00000000000..19b3aad06a1
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
@@ -0,0 +1,49 @@
+    void _deserializeProperties(Serializers serializers, Object serialized,
+        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required {{classname}}Builder result, required List<Object?> unhandled}) {
+        for (var i = 0; i < serializedList.length; i += 2) {
+            final key = serializedList[i] as String;
+            final value = serializedList[i + 1];
+            switch (key) {
+                {{#vendorExtensions.x-self-and-ancestor-only-props}}
+                 case r'{{baseName}}':
+                    final valueDes = serializers.deserialize(value,
+                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
+                    {{#isNullable}}
+                    if (valueDes == null) continue;
+                    {{/isNullable}}
+                    {{#isContainer}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/isContainer}}
+                    {{^isContainer}}
+                    {{#isEnum}}
+                    result.{{{name}}} = valueDes;
+                    {{/isEnum}}
+                    {{^isEnum}}
+                    {{#isModel}}
+                    {{#isPrimitiveType}}                    
+                    {{! These are models that have been manually marked as primitive via generator param. }}
+                    result.{{{name}}} = valueDes;
+                    {{/isPrimitiveType}}                    
+                    {{^isPrimitiveType}}
+                    {{#vendorExtensions.x-is-parent}}
+                    result.{{{name}}} = valueDes;
+                    {{/vendorExtensions.x-is-parent}}
+                    {{^vendorExtensions.x-is-parent}}
+                    result.{{{name}}}.replace(valueDes);
+                    {{/vendorExtensions.x-is-parent}}                    
+                    {{/isPrimitiveType}}
+                    {{/isModel}}
+                    {{^isModel}}
+                    result.{{{name}}} = valueDes;
+                    {{/isModel}}
+                    {{/isEnum}}
+                    {{/isContainer}}
+                    break;
+                {{/vendorExtensions.x-self-and-ancestor-only-props}}
+                default:
+                  unhandled.add(key);
+                  unhandled.add(value);
+                  break;
+            }
+        }
+    }
\ No newline at end of file
-- 
GitLab


From 4ce8fef46973fc591b180adcdec3dc49880ddbde Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 21 Aug 2022 19:09:48 +0200
Subject: [PATCH 29/42] regen samples

---
 .../built_value/class_serializer.mustache     |   3 +-
 .../deserialize_properties.mustache           |  96 +++++-----
 .../dart-dio/oneof/lib/src/model/apple.dart   |  30 +--
 .../dart-dio/oneof/lib/src/model/banana.dart  |  30 +--
 .../dart-dio/oneof/lib/src/model/fruit.dart   |  30 +--
 .../lib/src/model/addressable.dart            |  81 ++++----
 .../lib/src/model/bar.dart                    | 100 +++++-----
 .../lib/src/model/bar_create.dart             | 100 +++++-----
 .../lib/src/model/bar_ref.dart                |  90 ++++-----
 .../lib/src/model/bar_ref_or_value.dart       |   1 +
 .../lib/src/model/entity.dart                 | 141 +++++++-------
 .../lib/src/model/entity_ref.dart             | 181 +++++++++---------
 .../lib/src/model/extensible.dart             | 101 +++++-----
 .../lib/src/model/foo.dart                    |  90 ++++-----
 .../lib/src/model/foo_ref.dart                | 100 +++++-----
 .../lib/src/model/foo_ref_or_value.dart       |   1 +
 .../lib/src/model/pasta.dart                  |  80 ++++----
 .../lib/src/model/pizza.dart                  | 161 ++++++++--------
 .../lib/src/model/pizza_speziale.dart         |  90 ++++-----
 .../oneof_primitive/lib/src/model/child.dart  |  30 +--
 .../lib/src/model/example.dart                |   1 +
 .../model/additional_properties_class.dart    |  40 ++--
 .../lib/src/model/all_of_with_single_ref.dart |  40 ++--
 .../lib/src/model/animal.dart                 |  81 ++++----
 .../lib/src/model/api_response.dart           |  50 ++---
 .../model/array_of_array_of_number_only.dart  |  30 +--
 .../lib/src/model/array_of_number_only.dart   |  30 +--
 .../lib/src/model/array_test.dart             |  50 ++---
 .../lib/src/model/capitalization.dart         |  80 ++++----
 .../lib/src/model/cat.dart                    |  50 ++---
 .../lib/src/model/cat_all_of.dart             |  61 +++---
 .../lib/src/model/category.dart               |  40 ++--
 .../lib/src/model/class_model.dart            |  30 +--
 .../lib/src/model/deprecated_object.dart      |  30 +--
 .../lib/src/model/dog.dart                    |  50 ++---
 .../lib/src/model/dog_all_of.dart             |  61 +++---
 .../lib/src/model/enum_arrays.dart            |  40 ++--
 .../lib/src/model/enum_test.dart              | 102 +++++-----
 .../lib/src/model/file_schema_test_class.dart |  40 ++--
 .../lib/src/model/foo.dart                    |  30 +--
 .../src/model/foo_get_default_response.dart   |  30 +--
 .../lib/src/model/format_test.dart            | 180 ++++++++---------
 .../lib/src/model/has_only_read_only.dart     |  40 ++--
 .../lib/src/model/health_check_result.dart    |  32 ++--
 .../lib/src/model/map_test.dart               |  60 +++---
 ...rties_and_additional_properties_class.dart |  50 ++---
 .../lib/src/model/model200_response.dart      |  40 ++--
 .../lib/src/model/model_client.dart           |  30 +--
 .../lib/src/model/model_file.dart             |  30 +--
 .../lib/src/model/model_list.dart             |  30 +--
 .../lib/src/model/model_return.dart           |  30 +--
 .../lib/src/model/name.dart                   |  60 +++---
 .../lib/src/model/nullable_class.dart         | 160 ++++++++--------
 .../lib/src/model/number_only.dart            |  30 +--
 .../model/object_with_deprecated_fields.dart  |  60 +++---
 .../lib/src/model/order.dart                  |  80 ++++----
 .../lib/src/model/outer_composite.dart        |  50 ++---
 .../outer_object_with_enum_property.dart      |  30 +--
 .../lib/src/model/pet.dart                    |  80 ++++----
 .../lib/src/model/read_only_first.dart        |  40 ++--
 .../lib/src/model/special_model_name.dart     |  30 +--
 .../lib/src/model/tag.dart                    |  40 ++--
 .../lib/src/model/user.dart                   | 100 +++++-----
 63 files changed, 1897 insertions(+), 1887 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
index d93212f059e..cd818daa5eb 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
@@ -77,8 +77,7 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
     }
 
     {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-    {{>serialization/built_value/deserialize_properties}}    
-    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{>serialization/built_value/deserialize_properties}}{{/vendorExtensions.x-has-self-and-ancestor-only-props}}
     
     @override
     {{classname}} deserialize(Serializers serializers, Object serialized,
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
index 19b3aad06a1..61b014e1909 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
@@ -1,49 +1,49 @@
-    void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required {{classname}}Builder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                {{#vendorExtensions.x-self-and-ancestor-only-props}}
-                 case r'{{baseName}}':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
-                    {{#isNullable}}
-                    if (valueDes == null) continue;
-                    {{/isNullable}}
-                    {{#isContainer}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/isContainer}}
-                    {{^isContainer}}
-                    {{#isEnum}}
-                    result.{{{name}}} = valueDes;
-                    {{/isEnum}}
-                    {{^isEnum}}
-                    {{#isModel}}
-                    {{#isPrimitiveType}}                    
-                    {{! These are models that have been manually marked as primitive via generator param. }}
-                    result.{{{name}}} = valueDes;
-                    {{/isPrimitiveType}}                    
-                    {{^isPrimitiveType}}
-                    {{#vendorExtensions.x-is-parent}}
-                    result.{{{name}}} = valueDes;
-                    {{/vendorExtensions.x-is-parent}}
-                    {{^vendorExtensions.x-is-parent}}
-                    result.{{{name}}}.replace(valueDes);
-                    {{/vendorExtensions.x-is-parent}}                    
-                    {{/isPrimitiveType}}
-                    {{/isModel}}
-                    {{^isModel}}
-                    result.{{{name}}} = valueDes;
-                    {{/isModel}}
-                    {{/isEnum}}
-                    {{/isContainer}}
-                    break;
-                {{/vendorExtensions.x-self-and-ancestor-only-props}}
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+void _deserializeProperties(Serializers serializers, Object serialized,
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required {{classname}}Builder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+            {{#vendorExtensions.x-self-and-ancestor-only-props}}
+                case r'{{baseName}}':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
+                {{#isNullable}}
+                if (valueDes == null) continue;
+                {{/isNullable}}
+                {{#isContainer}}
+                result.{{{name}}}.replace(valueDes);
+                {{/isContainer}}
+                {{^isContainer}}
+                {{#isEnum}}
+                result.{{{name}}} = valueDes;
+                {{/isEnum}}
+                {{^isEnum}}
+                {{#isModel}}
+                {{#isPrimitiveType}}
+                {{! These are models that have been manually marked as primitive via generator param. }}
+                result.{{{name}}} = valueDes;
+                {{/isPrimitiveType}}
+                {{^isPrimitiveType}}
+                {{#vendorExtensions.x-is-parent}}
+                result.{{{name}}} = valueDes;
+                {{/vendorExtensions.x-is-parent}}
+                {{^vendorExtensions.x-is-parent}}
+                result.{{{name}}}.replace(valueDes);
+                {{/vendorExtensions.x-is-parent}}
+                {{/isPrimitiveType}}
+                {{/isModel}}
+                {{^isModel}}
+                result.{{{name}}} = valueDes;
+                {{/isModel}}
+                {{/isEnum}}
+                {{/isContainer}}
+                break;
+            {{/vendorExtensions.x-self-and-ancestor-only-props}}
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
-    }
\ No newline at end of file
+    }
+}
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
index adbdf18dc6d..1f5d670ecf3 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
@@ -56,23 +56,23 @@ class _$AppleSerializer implements PrimitiveSerializer<Apple> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AppleBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'kind':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.kind = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AppleBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'kind':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.kind = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Apple deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
index dec241dce66..f16141a5be0 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
@@ -56,23 +56,23 @@ class _$BananaSerializer implements PrimitiveSerializer<Banana> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BananaBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'count':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.count = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BananaBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'count':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.count = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Banana deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
index 2356980d310..d64d7e2f96b 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
@@ -66,23 +66,23 @@ class _$FruitSerializer implements PrimitiveSerializer<Fruit> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FruitBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'color':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.color = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FruitBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'color':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.color = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Fruit deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
index e71cfa4d7c4..eb97ff51e5d 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
@@ -63,28 +63,28 @@ class _$AddressableSerializer implements PrimitiveSerializer<Addressable> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AddressableBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AddressableBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Addressable deserialize(Serializers serializers, Object serialized,
@@ -122,28 +122,29 @@ class _$$AddressableSerializer implements PrimitiveSerializer<$Addressable> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $AddressableBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AddressableBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $Addressable deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
index 44496c3c5c5..a2386b55eaf 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
@@ -103,58 +103,58 @@ class _$BarSerializer implements PrimitiveSerializer<Bar> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'foo':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
-                    result.foo.replace(valueDes);
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'fooPropB':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.fooPropB = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                 case r'barPropA':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.barPropA = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'foo':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
+                result.foo.replace(valueDes);
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'fooPropB':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.fooPropB = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+                case r'barPropA':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.barPropA = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Bar deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
index 4ecdf3fc612..a2a5406e34a 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
@@ -103,58 +103,58 @@ class _$BarCreateSerializer implements PrimitiveSerializer<BarCreate> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarCreateBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'foo':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
-                    result.foo.replace(valueDes);
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'fooPropB':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.fooPropB = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                 case r'barPropA':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.barPropA = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarCreateBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'foo':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
+                result.foo.replace(valueDes);
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'fooPropB':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.fooPropB = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+                case r'barPropA':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.barPropA = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     BarCreate deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
index 5289953ee57..ed20df535ff 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
@@ -88,53 +88,53 @@ class _$BarRefSerializer implements PrimitiveSerializer<BarRef> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarRefBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@referredType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atReferredType = valueDes;
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarRefBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@referredType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atReferredType = valueDes;
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     BarRef deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
index 98cd4b26407..f6148eb03f1 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
@@ -64,6 +64,7 @@ class _$BarRefOrValueSerializer implements PrimitiveSerializer<BarRefOrValue> {
         return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
     }
 
+
     
     @override
     BarRefOrValue deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
index 701e0e79429..f7c4b1e3079 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
@@ -109,43 +109,43 @@ class _$EntitySerializer implements PrimitiveSerializer<Entity> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Entity deserialize(Serializers serializers, Object serialized,
@@ -201,43 +201,44 @@ class _$$EntitySerializer implements PrimitiveSerializer<$Entity> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $EntityBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $Entity deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
index d23b6149e3f..025b7542766 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
@@ -107,53 +107,53 @@ class _$EntityRefSerializer implements PrimitiveSerializer<EntityRef> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityRefBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@referredType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atReferredType = valueDes;
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityRefBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@referredType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atReferredType = valueDes;
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     EntityRef deserialize(Serializers serializers, Object serialized,
@@ -201,53 +201,54 @@ class _$$EntityRefSerializer implements PrimitiveSerializer<$EntityRef> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $EntityRefBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@referredType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atReferredType = valueDes;
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityRefBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@referredType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atReferredType = valueDes;
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $EntityRef deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
index dc19d251f9f..af2af4c4a58 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
@@ -70,33 +70,33 @@ class _$ExtensibleSerializer implements PrimitiveSerializer<Extensible> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ExtensibleBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ExtensibleBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Extensible deserialize(Serializers serializers, Object serialized,
@@ -134,33 +134,34 @@ class _$$ExtensibleSerializer implements PrimitiveSerializer<$Extensible> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $ExtensibleBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ExtensibleBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $Extensible deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
index 41de39d5f31..8df2c2ce4de 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
@@ -94,53 +94,53 @@ class _$FooSerializer implements PrimitiveSerializer<Foo> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'fooPropA':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.fooPropA = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'fooPropB':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.fooPropB = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'fooPropA':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.fooPropA = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'fooPropB':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.fooPropB = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Foo deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
index cb6ccd55179..b3de8388346 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
@@ -96,58 +96,58 @@ class _$FooRefSerializer implements PrimitiveSerializer<FooRef> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooRefBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@referredType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atReferredType = valueDes;
-                    break;
-                 case r'foorefPropA':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.foorefPropA = valueDes;
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooRefBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@referredType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atReferredType = valueDes;
+                break;
+                case r'foorefPropA':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.foorefPropA = valueDes;
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     FooRef deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
index ab343ffd8db..4820b7f372e 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
@@ -64,6 +64,7 @@ class _$FooRefOrValueSerializer implements PrimitiveSerializer<FooRefOrValue> {
         return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
     }
 
+
     
     @override
     FooRefOrValue deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
index 99106f85ef9..9f93c21e4e5 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
@@ -86,48 +86,48 @@ class _$PastaSerializer implements PrimitiveSerializer<Pasta> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PastaBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                 case r'vendor':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.vendor = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PastaBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+                case r'vendor':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.vendor = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Pasta deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
index 8e915e4c162..e4db8602a5f 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
@@ -91,48 +91,48 @@ class _$PizzaSerializer implements PrimitiveSerializer<Pizza> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'pizzaSize':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.pizzaSize = valueDes;
-                    break;
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'pizzaSize':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.pizzaSize = valueDes;
+                break;
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Pizza deserialize(Serializers serializers, Object serialized,
@@ -178,48 +178,49 @@ class _$$PizzaSerializer implements PrimitiveSerializer<$Pizza> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $PizzaBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'pizzaSize':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.pizzaSize = valueDes;
-                    break;
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'pizzaSize':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.pizzaSize = valueDes;
+                break;
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $Pizza deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
index ae2780b4892..b751eb628fc 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
@@ -91,53 +91,53 @@ class _$PizzaSpezialeSerializer implements PrimitiveSerializer<PizzaSpeziale> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaSpezialeBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'@schemaLocation':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atSchemaLocation = valueDes;
-                    break;
-                 case r'pizzaSize':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.pizzaSize = valueDes;
-                    break;
-                 case r'toppings':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.toppings = valueDes;
-                    break;
-                 case r'@baseType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atBaseType = valueDes;
-                    break;
-                 case r'href':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.href = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.id = valueDes;
-                    break;
-                 case r'@type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.atType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaSpezialeBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'@schemaLocation':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atSchemaLocation = valueDes;
+                break;
+                case r'pizzaSize':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.pizzaSize = valueDes;
+                break;
+                case r'toppings':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.toppings = valueDes;
+                break;
+                case r'@baseType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atBaseType = valueDes;
+                break;
+                case r'href':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.href = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.id = valueDes;
+                break;
+                case r'@type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.atType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     PizzaSpeziale deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
index cb3b213b533..a3dd9495899 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
@@ -56,23 +56,23 @@ class _$ChildSerializer implements PrimitiveSerializer<Child> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ChildBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ChildBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Child deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
index cb68e510f1f..eefe40ae295 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
@@ -54,6 +54,7 @@ class _$ExampleSerializer implements PrimitiveSerializer<Example> {
         return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
     }
 
+
     
     @override
     Example deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index 7eebf80d270..eaa5329b4a7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -65,28 +65,28 @@ class _$AdditionalPropertiesClassSerializer implements PrimitiveSerializer<Addit
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'map_property':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])) as BuiltMap<String, String>;
-                    result.mapProperty.replace(valueDes);
-                    break;
-                 case r'map_of_map_property':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
-                    result.mapOfMapProperty.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'map_property':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])) as BuiltMap<String, String>;
+                result.mapProperty.replace(valueDes);
+                break;
+                case r'map_of_map_property':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
+                result.mapOfMapProperty.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     AdditionalPropertiesClass deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index 0fd6d72e34a..1d92c605a11 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -65,28 +65,28 @@ class _$AllOfWithSingleRefSerializer implements PrimitiveSerializer<AllOfWithSin
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AllOfWithSingleRefBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'username':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.username = valueDes;
-                    break;
-                 case r'SingleRefType':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(SingleRefType)) as SingleRefType;
-                    result.singleRefType = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AllOfWithSingleRefBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'username':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.username = valueDes;
+                break;
+                case r'SingleRefType':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(SingleRefType)) as SingleRefType;
+                result.singleRefType = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     AllOfWithSingleRef deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index b8191422710..1340ee5dd7f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -74,28 +74,28 @@ class _$AnimalSerializer implements PrimitiveSerializer<Animal> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AnimalBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'className':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.className = valueDes;
-                    break;
-                 case r'color':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.color = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AnimalBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'className':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.className = valueDes;
+                break;
+                case r'color':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.color = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Animal deserialize(Serializers serializers, Object serialized,
@@ -143,28 +143,29 @@ class _$$AnimalSerializer implements PrimitiveSerializer<$Animal> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $AnimalBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'className':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.className = valueDes;
-                    break;
-                 case r'color':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.color = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AnimalBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'className':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.className = valueDes;
+                break;
+                case r'color':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.color = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $Animal deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index 1795fbb58f8..5bb16418e13 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -72,33 +72,33 @@ class _$ApiResponseSerializer implements PrimitiveSerializer<ApiResponse> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ApiResponseBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'code':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.code = valueDes;
-                    break;
-                 case r'type':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.type = valueDes;
-                    break;
-                 case r'message':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.message = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ApiResponseBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'code':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.code = valueDes;
+                break;
+                case r'type':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.type = valueDes;
+                break;
+                case r'message':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.message = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ApiResponse deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index 0be24b79d8e..ad2829d10ae 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -57,23 +57,23 @@ class _$ArrayOfArrayOfNumberOnlySerializer implements PrimitiveSerializer<ArrayO
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'ArrayArrayNumber':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])) as BuiltList<BuiltList<num>>;
-                    result.arrayArrayNumber.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'ArrayArrayNumber':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])) as BuiltList<BuiltList<num>>;
+                result.arrayArrayNumber.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ArrayOfArrayOfNumberOnly deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index 143db3484a2..95a8f2ade7d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -57,23 +57,23 @@ class _$ArrayOfNumberOnlySerializer implements PrimitiveSerializer<ArrayOfNumber
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'ArrayNumber':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(num)])) as BuiltList<num>;
-                    result.arrayNumber.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'ArrayNumber':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(num)])) as BuiltList<num>;
+                result.arrayNumber.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ArrayOfNumberOnly deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index f8e5b25a6fb..5d5c6bd4193 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -74,33 +74,33 @@ class _$ArrayTestSerializer implements PrimitiveSerializer<ArrayTest> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayTestBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'array_of_string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
-                    result.arrayOfString.replace(valueDes);
-                    break;
-                 case r'array_array_of_integer':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList<BuiltList<int>>;
-                    result.arrayArrayOfInteger.replace(valueDes);
-                    break;
-                 case r'array_array_of_model':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList<BuiltList<ReadOnlyFirst>>;
-                    result.arrayArrayOfModel.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayTestBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'array_of_string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
+                result.arrayOfString.replace(valueDes);
+                break;
+                case r'array_array_of_integer':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList<BuiltList<int>>;
+                result.arrayArrayOfInteger.replace(valueDes);
+                break;
+                case r'array_array_of_model':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList<BuiltList<ReadOnlyFirst>>;
+                result.arrayArrayOfModel.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ArrayTest deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index 06c83ffc718..c12d3a6719e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -97,48 +97,48 @@ class _$CapitalizationSerializer implements PrimitiveSerializer<Capitalization>
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CapitalizationBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'smallCamel':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.smallCamel = valueDes;
-                    break;
-                 case r'CapitalCamel':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.capitalCamel = valueDes;
-                    break;
-                 case r'small_Snake':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.smallSnake = valueDes;
-                    break;
-                 case r'Capital_Snake':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.capitalSnake = valueDes;
-                    break;
-                 case r'SCA_ETH_Flow_Points':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.sCAETHFlowPoints = valueDes;
-                    break;
-                 case r'ATT_NAME':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.ATT_NAME = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CapitalizationBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'smallCamel':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.smallCamel = valueDes;
+                break;
+                case r'CapitalCamel':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.capitalCamel = valueDes;
+                break;
+                case r'small_Snake':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.smallSnake = valueDes;
+                break;
+                case r'Capital_Snake':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.capitalSnake = valueDes;
+                break;
+                case r'SCA_ETH_Flow_Points':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.sCAETHFlowPoints = valueDes;
+                break;
+                case r'ATT_NAME':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.ATT_NAME = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Capitalization deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index cca8194d176..1088cea95da 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -68,33 +68,33 @@ class _$CatSerializer implements PrimitiveSerializer<Cat> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'className':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.className = valueDes;
-                    break;
-                 case r'color':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.color = valueDes;
-                    break;
-                 case r'declawed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(bool)) as bool;
-                    result.declawed = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'className':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.className = valueDes;
+                break;
+                case r'color':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.color = valueDes;
+                break;
+                case r'declawed':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(bool)) as bool;
+                result.declawed = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Cat deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index e1947a2b123..28f9f5ff026 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -53,23 +53,23 @@ class _$CatAllOfSerializer implements PrimitiveSerializer<CatAllOf> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatAllOfBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'declawed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(bool)) as bool;
-                    result.declawed = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatAllOfBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'declawed':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(bool)) as bool;
+                result.declawed = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     CatAllOf deserialize(Serializers serializers, Object serialized,
@@ -107,23 +107,24 @@ class _$$CatAllOfSerializer implements PrimitiveSerializer<$CatAllOf> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $CatAllOfBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'declawed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(bool)) as bool;
-                    result.declawed = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatAllOfBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'declawed':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(bool)) as bool;
+                result.declawed = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $CatAllOf deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index 1072f947671..d76988dcd9e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -63,28 +63,28 @@ class _$CategorySerializer implements PrimitiveSerializer<Category> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CategoryBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.id = valueDes;
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CategoryBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.id = valueDes;
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Category deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index 51e021f9585..8788650fb33 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -56,23 +56,23 @@ class _$ClassModelSerializer implements PrimitiveSerializer<ClassModel> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ClassModelBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'_class':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.classField = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ClassModelBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'_class':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.classField = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ClassModel deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index a1e32c98cd5..b77e9d9b5ae 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -56,23 +56,23 @@ class _$DeprecatedObjectSerializer implements PrimitiveSerializer<DeprecatedObje
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DeprecatedObjectBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DeprecatedObjectBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     DeprecatedObject deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 2c16df6d030..249ea11465c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -68,33 +68,33 @@ class _$DogSerializer implements PrimitiveSerializer<Dog> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'className':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.className = valueDes;
-                    break;
-                 case r'color':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.color = valueDes;
-                    break;
-                 case r'breed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.breed = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'className':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.className = valueDes;
+                break;
+                case r'color':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.color = valueDes;
+                break;
+                case r'breed':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.breed = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Dog deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index 0e43ee1149c..b0fb7b27d3c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -53,23 +53,23 @@ class _$DogAllOfSerializer implements PrimitiveSerializer<DogAllOf> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogAllOfBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'breed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.breed = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogAllOfBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'breed':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.breed = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     DogAllOf deserialize(Serializers serializers, Object serialized,
@@ -107,23 +107,24 @@ class _$$DogAllOfSerializer implements PrimitiveSerializer<$DogAllOf> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required $DogAllOfBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'breed':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.breed = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogAllOfBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'breed':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.breed = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
+    
     @override
     $DogAllOf deserialize(Serializers serializers, Object serialized,
         {FullType specifiedType = FullType.unspecified}) {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index af87206befc..89d851870c3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -67,28 +67,28 @@ class _$EnumArraysSerializer implements PrimitiveSerializer<EnumArrays> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumArraysBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'just_symbol':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(EnumArraysJustSymbolEnum)) as EnumArraysJustSymbolEnum;
-                    result.justSymbol = valueDes;
-                    break;
-                 case r'array_enum':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList<EnumArraysArrayEnumEnum>;
-                    result.arrayEnum.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumArraysBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'just_symbol':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(EnumArraysJustSymbolEnum)) as EnumArraysJustSymbolEnum;
+                result.justSymbol = valueDes;
+                break;
+                case r'array_enum':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList<EnumArraysArrayEnumEnum>;
+                result.arrayEnum.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     EnumArrays deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index dd904436fa7..8991f4c07c8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -123,59 +123,59 @@ class _$EnumTestSerializer implements PrimitiveSerializer<EnumTest> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumTestBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'enum_string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(EnumTestEnumStringEnum)) as EnumTestEnumStringEnum;
-                    result.enumString = valueDes;
-                    break;
-                 case r'enum_string_required':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(EnumTestEnumStringRequiredEnum)) as EnumTestEnumStringRequiredEnum;
-                    result.enumStringRequired = valueDes;
-                    break;
-                 case r'enum_integer':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(EnumTestEnumIntegerEnum)) as EnumTestEnumIntegerEnum;
-                    result.enumInteger = valueDes;
-                    break;
-                 case r'enum_number':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(EnumTestEnumNumberEnum)) as EnumTestEnumNumberEnum;
-                    result.enumNumber = valueDes;
-                    break;
-                 case r'outerEnum':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(OuterEnum)) as OuterEnum?;
-                    if (valueDes == null) continue;
-                    result.outerEnum = valueDes;
-                    break;
-                 case r'outerEnumInteger':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
-                    result.outerEnumInteger = valueDes;
-                    break;
-                 case r'outerEnumDefaultValue':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(OuterEnumDefaultValue)) as OuterEnumDefaultValue;
-                    result.outerEnumDefaultValue = valueDes;
-                    break;
-                 case r'outerEnumIntegerDefaultValue':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(OuterEnumIntegerDefaultValue)) as OuterEnumIntegerDefaultValue;
-                    result.outerEnumIntegerDefaultValue = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumTestBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'enum_string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(EnumTestEnumStringEnum)) as EnumTestEnumStringEnum;
+                result.enumString = valueDes;
+                break;
+                case r'enum_string_required':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(EnumTestEnumStringRequiredEnum)) as EnumTestEnumStringRequiredEnum;
+                result.enumStringRequired = valueDes;
+                break;
+                case r'enum_integer':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(EnumTestEnumIntegerEnum)) as EnumTestEnumIntegerEnum;
+                result.enumInteger = valueDes;
+                break;
+                case r'enum_number':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(EnumTestEnumNumberEnum)) as EnumTestEnumNumberEnum;
+                result.enumNumber = valueDes;
+                break;
+                case r'outerEnum':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(OuterEnum)) as OuterEnum?;
+                if (valueDes == null) continue;
+                result.outerEnum = valueDes;
+                break;
+                case r'outerEnumInteger':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
+                result.outerEnumInteger = valueDes;
+                break;
+                case r'outerEnumDefaultValue':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(OuterEnumDefaultValue)) as OuterEnumDefaultValue;
+                result.outerEnumDefaultValue = valueDes;
+                break;
+                case r'outerEnumIntegerDefaultValue':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(OuterEnumIntegerDefaultValue)) as OuterEnumIntegerDefaultValue;
+                result.outerEnumIntegerDefaultValue = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     EnumTest deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index 2242f8b6046..ff8ef64b759 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -66,28 +66,28 @@ class _$FileSchemaTestClassSerializer implements PrimitiveSerializer<FileSchemaT
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FileSchemaTestClassBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'file':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(ModelFile)) as ModelFile;
-                    result.file.replace(valueDes);
-                    break;
-                 case r'files':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(ModelFile)])) as BuiltList<ModelFile>;
-                    result.files.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FileSchemaTestClassBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'file':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(ModelFile)) as ModelFile;
+                result.file.replace(valueDes);
+                break;
+                case r'files':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(ModelFile)])) as BuiltList<ModelFile>;
+                result.files.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     FileSchemaTestClass deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index 0b2fad88376..e22471adb11 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -57,23 +57,23 @@ class _$FooSerializer implements PrimitiveSerializer<Foo> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'bar':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.bar = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'bar':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.bar = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Foo deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
index acbde9dc46f..dd05914e6cc 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
@@ -57,23 +57,23 @@ class _$FooGetDefaultResponseSerializer implements PrimitiveSerializer<FooGetDef
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooGetDefaultResponseBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(Foo)) as Foo;
-                    result.string.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooGetDefaultResponseBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(Foo)) as Foo;
+                result.string.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     FooGetDefaultResponse deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index 76fec5d2462..8fa1e8337e5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -172,98 +172,98 @@ class _$FormatTestSerializer implements PrimitiveSerializer<FormatTest> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FormatTestBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'integer':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.integer = valueDes;
-                    break;
-                 case r'int32':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.int32 = valueDes;
-                    break;
-                 case r'int64':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.int64 = valueDes;
-                    break;
-                 case r'number':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.number = valueDes;
-                    break;
-                 case r'float':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(double)) as double;
-                    result.float = valueDes;
-                    break;
-                 case r'double':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(double)) as double;
-                    result.double_ = valueDes;
-                    break;
-                 case r'decimal':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(double)) as double;
-                    result.decimal = valueDes;
-                    break;
-                 case r'string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.string = valueDes;
-                    break;
-                 case r'byte':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.byte = valueDes;
-                    break;
-                 case r'binary':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(Uint8List)) as Uint8List;
-                    result.binary = valueDes;
-                    break;
-                 case r'date':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(Date)) as Date;
-                    result.date = valueDes;
-                    break;
-                 case r'dateTime':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(DateTime)) as DateTime;
-                    result.dateTime = valueDes;
-                    break;
-                 case r'uuid':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.uuid = valueDes;
-                    break;
-                 case r'password':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.password = valueDes;
-                    break;
-                 case r'pattern_with_digits':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.patternWithDigits = valueDes;
-                    break;
-                 case r'pattern_with_digits_and_delimiter':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.patternWithDigitsAndDelimiter = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FormatTestBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'integer':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.integer = valueDes;
+                break;
+                case r'int32':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.int32 = valueDes;
+                break;
+                case r'int64':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.int64 = valueDes;
+                break;
+                case r'number':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.number = valueDes;
+                break;
+                case r'float':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(double)) as double;
+                result.float = valueDes;
+                break;
+                case r'double':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(double)) as double;
+                result.double_ = valueDes;
+                break;
+                case r'decimal':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(double)) as double;
+                result.decimal = valueDes;
+                break;
+                case r'string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.string = valueDes;
+                break;
+                case r'byte':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.byte = valueDes;
+                break;
+                case r'binary':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(Uint8List)) as Uint8List;
+                result.binary = valueDes;
+                break;
+                case r'date':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(Date)) as Date;
+                result.date = valueDes;
+                break;
+                case r'dateTime':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(DateTime)) as DateTime;
+                result.dateTime = valueDes;
+                break;
+                case r'uuid':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.uuid = valueDes;
+                break;
+                case r'password':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.password = valueDes;
+                break;
+                case r'pattern_with_digits':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.patternWithDigits = valueDes;
+                break;
+                case r'pattern_with_digits_and_delimiter':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.patternWithDigitsAndDelimiter = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     FormatTest deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index 36633e7e056..fbf3306a31c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -64,28 +64,28 @@ class _$HasOnlyReadOnlySerializer implements PrimitiveSerializer<HasOnlyReadOnly
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HasOnlyReadOnlyBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'bar':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.bar = valueDes;
-                    break;
-                 case r'foo':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.foo = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HasOnlyReadOnlyBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'bar':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.bar = valueDes;
+                break;
+                case r'foo':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.foo = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     HasOnlyReadOnly deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index 3dbe163ee7e..df2d94b804a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -56,24 +56,24 @@ class _$HealthCheckResultSerializer implements PrimitiveSerializer<HealthCheckRe
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HealthCheckResultBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'NullableMessage':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(String)) as String?;
-                    if (valueDes == null) continue;
-                    result.nullableMessage = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HealthCheckResultBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'NullableMessage':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(String)) as String?;
+                if (valueDes == null) continue;
+                result.nullableMessage = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     HealthCheckResult deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index bd0fc8915c3..7811febad55 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -82,38 +82,38 @@ class _$MapTestSerializer implements PrimitiveSerializer<MapTest> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MapTestBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'map_map_of_string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
-                    result.mapMapOfString.replace(valueDes);
-                    break;
-                 case r'map_of_enum_string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])) as BuiltMap<String, MapTestMapOfEnumStringEnum>;
-                    result.mapOfEnumString.replace(valueDes);
-                    break;
-                 case r'direct_map':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
-                    result.directMap.replace(valueDes);
-                    break;
-                 case r'indirect_map':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
-                    result.indirectMap.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MapTestBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'map_map_of_string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
+                result.mapMapOfString.replace(valueDes);
+                break;
+                case r'map_of_enum_string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])) as BuiltMap<String, MapTestMapOfEnumStringEnum>;
+                result.mapOfEnumString.replace(valueDes);
+                break;
+                case r'direct_map':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
+                result.directMap.replace(valueDes);
+                break;
+                case r'indirect_map':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
+                result.indirectMap.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     MapTest deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 03f60079083..b050360e94d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -74,33 +74,33 @@ class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements Primiti
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MixedPropertiesAndAdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'uuid':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.uuid = valueDes;
-                    break;
-                 case r'dateTime':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(DateTime)) as DateTime;
-                    result.dateTime = valueDes;
-                    break;
-                 case r'map':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])) as BuiltMap<String, Animal>;
-                    result.map.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MixedPropertiesAndAdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'uuid':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.uuid = valueDes;
+                break;
+                case r'dateTime':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(DateTime)) as DateTime;
+                result.dateTime = valueDes;
+                break;
+                case r'map':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])) as BuiltMap<String, Animal>;
+                result.map.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     MixedPropertiesAndAdditionalPropertiesClass deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 8c78228ebbc..10de8763c3f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -64,28 +64,28 @@ class _$Model200ResponseSerializer implements PrimitiveSerializer<Model200Respon
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required Model200ResponseBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.name = valueDes;
-                    break;
-                 case r'class':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.classField = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required Model200ResponseBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.name = valueDes;
+                break;
+                case r'class':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.classField = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Model200Response deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 374acfb8714..133b4f80817 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -56,23 +56,23 @@ class _$ModelClientSerializer implements PrimitiveSerializer<ModelClient> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelClientBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'client':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.client = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelClientBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'client':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.client = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ModelClient deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index 553f9e79360..e5c9153c691 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -57,23 +57,23 @@ class _$ModelFileSerializer implements PrimitiveSerializer<ModelFile> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelFileBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'sourceURI':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.sourceURI = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelFileBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'sourceURI':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.sourceURI = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ModelFile deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index 32a63258873..a4c74d4c0c1 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -56,23 +56,23 @@ class _$ModelListSerializer implements PrimitiveSerializer<ModelList> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelListBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'123-list':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.n123list = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelListBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'123-list':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.n123list = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ModelList deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index c31c0743363..e5da83863f1 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -56,23 +56,23 @@ class _$ModelReturnSerializer implements PrimitiveSerializer<ModelReturn> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelReturnBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'return':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.return_ = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelReturnBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'return':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.return_ = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ModelReturn deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index b007e6058ba..dcfaf8e5752 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -78,38 +78,38 @@ class _$NameSerializer implements PrimitiveSerializer<Name> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NameBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.name = valueDes;
-                    break;
-                 case r'snake_case':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.snakeCase = valueDes;
-                    break;
-                 case r'property':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.property = valueDes;
-                    break;
-                 case r'123Number':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.n123number = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NameBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.name = valueDes;
+                break;
+                case r'snake_case':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.snakeCase = valueDes;
+                break;
+                case r'property':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.property = valueDes;
+                break;
+                case r'123Number':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.n123number = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Name deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index 0ee1dbdb462..04f1999a89d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -147,88 +147,88 @@ class _$NullableClassSerializer implements PrimitiveSerializer<NullableClass> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NullableClassBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'integer_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(int)) as int?;
-                    if (valueDes == null) continue;
-                    result.integerProp = valueDes;
-                    break;
-                 case r'number_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(num)) as num?;
-                    if (valueDes == null) continue;
-                    result.numberProp = valueDes;
-                    break;
-                 case r'boolean_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(bool)) as bool?;
-                    if (valueDes == null) continue;
-                    result.booleanProp = valueDes;
-                    break;
-                 case r'string_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(String)) as String?;
-                    if (valueDes == null) continue;
-                    result.stringProp = valueDes;
-                    break;
-                 case r'date_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(Date)) as Date?;
-                    if (valueDes == null) continue;
-                    result.dateProp = valueDes;
-                    break;
-                 case r'datetime_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(DateTime)) as DateTime?;
-                    if (valueDes == null) continue;
-                    result.datetimeProp = valueDes;
-                    break;
-                 case r'array_nullable_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)])) as BuiltList<JsonObject>?;
-                    if (valueDes == null) continue;
-                    result.arrayNullableProp.replace(valueDes);
-                    break;
-                 case r'array_and_items_nullable_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>?;
-                    if (valueDes == null) continue;
-                    result.arrayAndItemsNullableProp.replace(valueDes);
-                    break;
-                 case r'array_items_nullable':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>;
-                    result.arrayItemsNullable.replace(valueDes);
-                    break;
-                 case r'object_nullable_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap<String, JsonObject>?;
-                    if (valueDes == null) continue;
-                    result.objectNullableProp.replace(valueDes);
-                    break;
-                 case r'object_and_items_nullable_prop':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>?;
-                    if (valueDes == null) continue;
-                    result.objectAndItemsNullableProp.replace(valueDes);
-                    break;
-                 case r'object_items_nullable':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>;
-                    result.objectItemsNullable.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NullableClassBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'integer_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(int)) as int?;
+                if (valueDes == null) continue;
+                result.integerProp = valueDes;
+                break;
+                case r'number_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(num)) as num?;
+                if (valueDes == null) continue;
+                result.numberProp = valueDes;
+                break;
+                case r'boolean_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(bool)) as bool?;
+                if (valueDes == null) continue;
+                result.booleanProp = valueDes;
+                break;
+                case r'string_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(String)) as String?;
+                if (valueDes == null) continue;
+                result.stringProp = valueDes;
+                break;
+                case r'date_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(Date)) as Date?;
+                if (valueDes == null) continue;
+                result.dateProp = valueDes;
+                break;
+                case r'datetime_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(DateTime)) as DateTime?;
+                if (valueDes == null) continue;
+                result.datetimeProp = valueDes;
+                break;
+                case r'array_nullable_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)])) as BuiltList<JsonObject>?;
+                if (valueDes == null) continue;
+                result.arrayNullableProp.replace(valueDes);
+                break;
+                case r'array_and_items_nullable_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>?;
+                if (valueDes == null) continue;
+                result.arrayAndItemsNullableProp.replace(valueDes);
+                break;
+                case r'array_items_nullable':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>;
+                result.arrayItemsNullable.replace(valueDes);
+                break;
+                case r'object_nullable_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap<String, JsonObject>?;
+                if (valueDes == null) continue;
+                result.objectNullableProp.replace(valueDes);
+                break;
+                case r'object_and_items_nullable_prop':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>?;
+                if (valueDes == null) continue;
+                result.objectAndItemsNullableProp.replace(valueDes);
+                break;
+                case r'object_items_nullable':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>;
+                result.objectItemsNullable.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     NullableClass deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index 3ced3da6ddd..8c8811b3e7e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -56,23 +56,23 @@ class _$NumberOnlySerializer implements PrimitiveSerializer<NumberOnly> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NumberOnlyBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'JustNumber':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.justNumber = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NumberOnlyBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'JustNumber':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.justNumber = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     NumberOnly deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index 72b471a4572..c8bec44c86f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -82,38 +82,38 @@ class _$ObjectWithDeprecatedFieldsSerializer implements PrimitiveSerializer<Obje
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ObjectWithDeprecatedFieldsBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'uuid':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.uuid = valueDes;
-                    break;
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.id = valueDes;
-                    break;
-                 case r'deprecatedRef':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(DeprecatedObject)) as DeprecatedObject;
-                    result.deprecatedRef.replace(valueDes);
-                    break;
-                 case r'bars':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
-                    result.bars.replace(valueDes);
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ObjectWithDeprecatedFieldsBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'uuid':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.uuid = valueDes;
+                break;
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.id = valueDes;
+                break;
+                case r'deprecatedRef':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(DeprecatedObject)) as DeprecatedObject;
+                result.deprecatedRef.replace(valueDes);
+                break;
+                case r'bars':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
+                result.bars.replace(valueDes);
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ObjectWithDeprecatedFields deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index 610a1731e7c..f0759a6e23f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -100,48 +100,48 @@ class _$OrderSerializer implements PrimitiveSerializer<Order> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OrderBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.id = valueDes;
-                    break;
-                 case r'petId':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.petId = valueDes;
-                    break;
-                 case r'quantity':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.quantity = valueDes;
-                    break;
-                 case r'shipDate':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(DateTime)) as DateTime;
-                    result.shipDate = valueDes;
-                    break;
-                 case r'status':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum;
-                    result.status = valueDes;
-                    break;
-                 case r'complete':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(bool)) as bool;
-                    result.complete = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OrderBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.id = valueDes;
+                break;
+                case r'petId':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.petId = valueDes;
+                break;
+                case r'quantity':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.quantity = valueDes;
+                break;
+                case r'shipDate':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(DateTime)) as DateTime;
+                result.shipDate = valueDes;
+                break;
+                case r'status':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum;
+                result.status = valueDes;
+                break;
+                case r'complete':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(bool)) as bool;
+                result.complete = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Order deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index b955cafe5a8..a9328e4d14e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -72,33 +72,33 @@ class _$OuterCompositeSerializer implements PrimitiveSerializer<OuterComposite>
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterCompositeBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'my_number':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(num)) as num;
-                    result.myNumber = valueDes;
-                    break;
-                 case r'my_string':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.myString = valueDes;
-                    break;
-                 case r'my_boolean':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(bool)) as bool;
-                    result.myBoolean = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterCompositeBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'my_number':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(num)) as num;
+                result.myNumber = valueDes;
+                break;
+                case r'my_string':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.myString = valueDes;
+                break;
+                case r'my_boolean':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(bool)) as bool;
+                result.myBoolean = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     OuterComposite deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index 80a178df93d..302ebb05cb5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -56,23 +56,23 @@ class _$OuterObjectWithEnumPropertySerializer implements PrimitiveSerializer<Out
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterObjectWithEnumPropertyBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'value':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
-                    result.value = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterObjectWithEnumPropertyBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'value':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
+                result.value = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     OuterObjectWithEnumProperty deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index ded468204c2..75379f7de58 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -97,48 +97,48 @@ class _$PetSerializer implements PrimitiveSerializer<Pet> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PetBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.id = valueDes;
-                    break;
-                 case r'category':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(Category)) as Category;
-                    result.category.replace(valueDes);
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                 case r'photoUrls':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltSet, [FullType(String)])) as BuiltSet<String>;
-                    result.photoUrls.replace(valueDes);
-                    break;
-                 case r'tags':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList<Tag>;
-                    result.tags.replace(valueDes);
-                    break;
-                 case r'status':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum;
-                    result.status = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PetBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.id = valueDes;
+                break;
+                case r'category':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(Category)) as Category;
+                result.category.replace(valueDes);
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+                case r'photoUrls':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltSet, [FullType(String)])) as BuiltSet<String>;
+                result.photoUrls.replace(valueDes);
+                break;
+                case r'tags':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList<Tag>;
+                result.tags.replace(valueDes);
+                break;
+                case r'status':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum;
+                result.status = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Pet deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index 2b95c157827..b3a0338e647 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -64,28 +64,28 @@ class _$ReadOnlyFirstSerializer implements PrimitiveSerializer<ReadOnlyFirst> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ReadOnlyFirstBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'bar':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.bar = valueDes;
-                    break;
-                 case r'baz':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.baz = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ReadOnlyFirstBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'bar':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.bar = valueDes;
+                break;
+                case r'baz':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.baz = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     ReadOnlyFirst deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index 1ac60c354b0..462ee255e90 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -56,23 +56,23 @@ class _$SpecialModelNameSerializer implements PrimitiveSerializer<SpecialModelNa
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required SpecialModelNameBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'$special[property.name]':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required SpecialModelNameBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'$special[property.name]':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     SpecialModelName deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index 1362c17300e..12f9b1e8c34 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -64,28 +64,28 @@ class _$TagSerializer implements PrimitiveSerializer<Tag> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required TagBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.id = valueDes;
-                    break;
-                 case r'name':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.name = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required TagBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.id = valueDes;
+                break;
+                case r'name':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.name = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     Tag deserialize(Serializers serializers, Object serialized,
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index 792b1802413..3a3e3039056 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -113,58 +113,58 @@ class _$UserSerializer implements PrimitiveSerializer<User> {
     }
 
     void _deserializeProperties(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required UserBuilder result, required List<Object?> unhandled}) {
-        for (var i = 0; i < serializedList.length; i += 2) {
-            final key = serializedList[i] as String;
-            final value = serializedList[i + 1];
-            switch (key) {
-                 case r'id':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.id = valueDes;
-                    break;
-                 case r'username':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.username = valueDes;
-                    break;
-                 case r'firstName':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.firstName = valueDes;
-                    break;
-                 case r'lastName':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.lastName = valueDes;
-                    break;
-                 case r'email':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.email = valueDes;
-                    break;
-                 case r'password':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.password = valueDes;
-                    break;
-                 case r'phone':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(String)) as String;
-                    result.phone = valueDes;
-                    break;
-                 case r'userStatus':
-                    final valueDes = serializers.deserialize(value,
-                        specifiedType: const FullType(int)) as int;
-                    result.userStatus = valueDes;
-                    break;
-                default:
-                  unhandled.add(key);
-                  unhandled.add(value);
-                  break;
-            }
+    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required UserBuilder result, required List<Object?> unhandled}) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+        final key = serializedList[i] as String;
+        final value = serializedList[i + 1];
+        switch (key) {
+                case r'id':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.id = valueDes;
+                break;
+                case r'username':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.username = valueDes;
+                break;
+                case r'firstName':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.firstName = valueDes;
+                break;
+                case r'lastName':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.lastName = valueDes;
+                break;
+                case r'email':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.email = valueDes;
+                break;
+                case r'password':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.password = valueDes;
+                break;
+                case r'phone':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(String)) as String;
+                result.phone = valueDes;
+                break;
+                case r'userStatus':
+                final valueDes = serializers.deserialize(value,
+                    specifiedType: const FullType(int)) as int;
+                result.userStatus = valueDes;
+                break;
+            default:
+                unhandled.add(key);
+                unhandled.add(value);
+                break;
         }
     }
+}
     
     @override
     User deserialize(Serializers serializers, Object serialized,
-- 
GitLab


From 3f36694cc38429c3bc49e15dc56e0e398446eb1c Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 21 Aug 2022 19:14:04 +0200
Subject: [PATCH 30/42] updated test pubspec

---
 .../dart-dio/petstore_client_lib_fake_tests/pubspec.yaml      | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/pubspec.yaml
index 518f45b62eb..80178cb89a9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/pubspec.yaml
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake_tests/pubspec.yaml
@@ -8,8 +8,8 @@ environment:
   sdk: '>=2.10.0 <3.0.0'
 
 dev_dependencies:
-  built_collection: 5.1.0
-  built_value: 8.1.0
+  built_collection: 5.1.1
+  built_value: 8.4.0
   dio: 4.0.1
   http_mock_adapter: 0.3.2
   mockito: 5.0.11
-- 
GitLab


From a3f84929d5f11c2a88dd00c3c3c1dcc70761f3cf Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 21 Aug 2022 19:35:21 +0200
Subject: [PATCH 31/42] temp fix rewriteImports for Lists and maps

---
 .../codegen/languages/DartDioClientCodegen.java           | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 5c65f657d70..9faeb3cfa4b 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -678,6 +678,14 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
     private Set<String> rewriteImports(Set<String> originalImports, boolean isModel) {
         Set<String> resultImports = Sets.newHashSet();
         for (String modelImport : originalImports) {
+            if (modelImport.startsWith("BuiltList", 0)) {
+                modelImport = "BuiltList";
+            } else if (modelImport.startsWith("BuiltSet", 0)) {
+                modelImport = "BuiltSet";
+            } else if (modelImport.startsWith("BuiltMap", 0)) {
+                modelImport = "BuiltMap";
+            }
+
             if (imports.containsKey(modelImport)) {
                 String i = imports.get(modelImport);
                 if (Objects.equals(i, DIO_IMPORT) && !isModel) {
-- 
GitLab


From 9363c391e851ef7b84b2e7d25a2a4e9e91ecb28d Mon Sep 17 00:00:00 2001
From: Peter Leibiger <kuhnroyal@gmail.com>
Date: Thu, 25 Aug 2022 14:44:28 +0200
Subject: [PATCH 32/42] Add new samples to CI

---
 pom.xml                                       |  3 +
 .../client/petstore/dart-dio/oneof/pom.xml    | 88 +++++++++++++++++++
 .../pom.xml                                   | 88 +++++++++++++++++++
 .../petstore/dart-dio/oneof_primitive/pom.xml | 88 +++++++++++++++++++
 4 files changed, 267 insertions(+)
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof/pom.xml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pom.xml
 create mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_primitive/pom.xml

diff --git a/pom.xml b/pom.xml
index df0a4a8f97c..666e811ffaa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1325,6 +1325,9 @@
             </activation>
             <modules>
                 <module>samples/openapi3/client/petstore/dart2/petstore_client_lib</module>
+                <module>samples/openapi3/client/petstore/dart-dio/oneof</module>
+                <module>samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance</module>
+                <module>samples/openapi3/client/petstore/dart-dio/oneof_primitive</module>
                 <module>samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake</module>
                 <module>samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable</module>
             </modules>
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/pom.xml b/samples/openapi3/client/petstore/dart-dio/oneof/pom.xml
new file mode 100644
index 00000000000..810c7d48d77
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/pom.xml
@@ -0,0 +1,88 @@
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.openapitools</groupId>
+    <artifactId>DartDioOneOf</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>DartDio OneOf</name>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.2.1</version>
+                <executions>
+                    <execution>
+                        <id>pub-get</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>pub</executable>
+                            <arguments>
+                                <argument>get</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>pub-run-build-runner</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>pub</executable>
+                            <arguments>
+                                <argument>run</argument>
+                                <argument>build_runner</argument>
+                                <argument>build</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>dart-analyze</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>dart</executable>
+                            <arguments>
+                                <argument>analyze</argument>
+                                <argument>--fatal-infos</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>dart-test</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>dart</executable>
+                            <arguments>
+                                <argument>test</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pom.xml b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pom.xml
new file mode 100644
index 00000000000..50f62b7f8da
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/pom.xml
@@ -0,0 +1,88 @@
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.openapitools</groupId>
+    <artifactId>DartDioOneOfPolymorphismAndInheritance</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>DartDio OneOf Polymorphism and Inheritance</name>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.2.1</version>
+                <executions>
+                    <execution>
+                        <id>pub-get</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>pub</executable>
+                            <arguments>
+                                <argument>get</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>pub-run-build-runner</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>pub</executable>
+                            <arguments>
+                                <argument>run</argument>
+                                <argument>build_runner</argument>
+                                <argument>build</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>dart-analyze</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>dart</executable>
+                            <arguments>
+                                <argument>analyze</argument>
+                                <argument>--fatal-infos</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>dart-test</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>dart</executable>
+                            <arguments>
+                                <argument>test</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pom.xml b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pom.xml
new file mode 100644
index 00000000000..cceaebd895f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/pom.xml
@@ -0,0 +1,88 @@
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.openapitools</groupId>
+    <artifactId>DartDioOneOfPrimitive</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>DartDio OneOf Primitive</name>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.2.1</version>
+                <executions>
+                    <execution>
+                        <id>pub-get</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>pub</executable>
+                            <arguments>
+                                <argument>get</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>pub-run-build-runner</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>pub</executable>
+                            <arguments>
+                                <argument>run</argument>
+                                <argument>build_runner</argument>
+                                <argument>build</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>dart-analyze</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>dart</executable>
+                            <arguments>
+                                <argument>analyze</argument>
+                                <argument>--fatal-infos</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>dart-test</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>dart</executable>
+                            <arguments>
+                                <argument>test</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
-- 
GitLab


From e682369d318f537c095d6bf5f0d56260bb1b3e56 Mon Sep 17 00:00:00 2001
From: Peter Leibiger <kuhnroyal@gmail.com>
Date: Thu, 25 Aug 2022 14:45:36 +0200
Subject: [PATCH 33/42] Improve white spaces & formatting

---
 .../serialization/built_value/class.mustache  |  16 +-
 .../built_value/class_concrete.mustache       |  69 ++-
 .../built_value/class_members.mustache        |  82 +--
 .../built_value/class_serializer.mustache     | 531 +++++++++--------
 .../deserialize_properties.mustache           | 102 ++--
 .../dart-dio/oneof/lib/src/model/apple.dart   | 143 +++--
 .../dart-dio/oneof/lib/src/model/banana.dart  | 143 +++--
 .../dart-dio/oneof/lib/src/model/fruit.dart   | 161 ++---
 .../lib/src/model/addressable.dart            | 236 ++++----
 .../lib/src/model/bar.dart                    | 314 +++++-----
 .../lib/src/model/bar_create.dart             | 314 +++++-----
 .../lib/src/model/bar_ref.dart                | 279 +++++----
 .../lib/src/model/bar_ref_or_value.dart       | 138 ++---
 .../lib/src/model/entity.dart                 | 394 +++++++------
 .../lib/src/model/entity_ref.dart             | 402 +++++++------
 .../lib/src/model/extensible.dart             | 266 ++++-----
 .../lib/src/model/foo.dart                    | 285 +++++----
 .../lib/src/model/foo_ref.dart                | 306 +++++-----
 .../lib/src/model/foo_ref_or_value.dart       | 138 ++---
 .../lib/src/model/pasta.dart                  | 258 ++++----
 .../lib/src/model/pizza.dart                  | 366 ++++++------
 .../lib/src/model/pizza_speziale.dart         | 282 +++++----
 .../oneof_primitive/lib/src/model/child.dart  | 143 +++--
 .../lib/src/model/example.dart                |  91 ++-
 .../model/additional_properties_class.dart    | 168 +++---
 .../lib/src/model/all_of_with_single_ref.dart | 168 +++---
 .../lib/src/model/animal.dart                 | 273 +++++----
 .../lib/src/model/api_response.dart           | 195 ++++---
 .../model/array_of_array_of_number_only.dart  | 143 +++--
 .../lib/src/model/array_of_number_only.dart   | 143 +++--
 .../lib/src/model/array_test.dart             | 195 ++++---
 .../lib/src/model/capitalization.dart         | 284 +++++----
 .../lib/src/model/cat.dart                    | 185 +++---
 .../lib/src/model/cat_all_of.dart             | 202 +++----
 .../lib/src/model/category.dart               | 168 +++---
 .../lib/src/model/class_model.dart            | 143 +++--
 .../lib/src/model/deprecated_object.dart      | 143 +++--
 .../lib/src/model/dog.dart                    | 185 +++---
 .../lib/src/model/dog_all_of.dart             | 202 +++----
 .../lib/src/model/enum_arrays.dart            | 172 +++---
 .../lib/src/model/enum_test.dart              | 362 +++++++-----
 .../lib/src/model/file_schema_test_class.dart | 168 +++---
 .../lib/src/model/foo.dart                    | 145 +++--
 .../src/model/foo_get_default_response.dart   | 143 +++--
 .../lib/src/model/format_test.dart            | 552 ++++++++++--------
 .../lib/src/model/has_only_read_only.dart     | 168 +++---
 .../lib/src/model/health_check_result.dart    | 145 +++--
 .../lib/src/model/map_test.dart               | 226 ++++---
 ...rties_and_additional_properties_class.dart | 195 ++++---
 .../lib/src/model/model200_response.dart      | 168 +++---
 .../lib/src/model/model_client.dart           | 143 +++--
 .../lib/src/model/model_file.dart             | 145 +++--
 .../lib/src/model/model_list.dart             | 143 +++--
 .../lib/src/model/model_return.dart           | 143 +++--
 .../lib/src/model/name.dart                   | 220 ++++---
 .../lib/src/model/nullable_class.dart         | 480 ++++++++-------
 .../lib/src/model/number_only.dart            | 143 +++--
 .../model/object_with_deprecated_fields.dart  | 224 ++++---
 .../lib/src/model/order.dart                  | 296 ++++++----
 .../lib/src/model/outer_composite.dart        | 195 ++++---
 .../outer_object_with_enum_property.dart      | 143 +++--
 .../lib/src/model/pet.dart                    | 278 +++++----
 .../lib/src/model/read_only_first.dart        | 168 +++---
 .../lib/src/model/special_model_name.dart     | 143 +++--
 .../lib/src/model/tag.dart                    | 168 +++---
 .../lib/src/model/user.dart                   | 350 ++++++-----
 66 files changed, 7795 insertions(+), 6287 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
index 1bc82614054..c1fbc10496c 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
@@ -1,8 +1,7 @@
 import 'package:built_value/built_value.dart';
-import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
+import 'package:built_value/serializer.dart';{{#oneOf}}
+import 'package:one_of/one_of.dart';{{/oneOf}}{{#anyOf}}
+import 'package:one_of/any_of.dart';{{/anyOf}}
 
 {{#imports}}
 {{/imports}}
@@ -12,10 +11,7 @@ part '{{classFilename}}.g.dart';
 {{>serialization/built_value/class_members}}
 }
 
-{{>serialization/built_value/class_serializer}}
+{{>serialization/built_value/class_serializer}}{{#vendorExtensions.x-is-parent}}
 
-{{#vendorExtensions.x-is-parent}}
-{{>serialization/built_value/class_concrete}}
-{{/vendorExtensions.x-is-parent}}
-
-{{>serialization/built_value/class_inline_enums}}
+{{>serialization/built_value/class_concrete}}{{/vendorExtensions.x-is-parent}}
+{{>serialization/built_value/class_inline_enums}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
index bac559f9aba..44cad763010 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_concrete.mustache
@@ -1,4 +1,4 @@
-/// a concrete implmentation of [{{classname}}], since [{{classname}}] is not instantiable
+/// a concrete implementation of [{{classname}}], since [{{classname}}] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class ${{classname}} implements {{classname}}, Built<${{classname}}, ${{classname}}Builder> {
   ${{classname}}._();
@@ -7,39 +7,50 @@ abstract class ${{classname}} implements {{classname}}, Built<${{classname}}, ${
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults(${{classname}}Builder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<${{classname}}> get serializer => _$${{classname}}Serializer();
 }
 
 class _$${{classname}}Serializer implements PrimitiveSerializer<${{classname}}> {
-    @override
-    final Iterable<Type> types = const [${{classname}}, _$${{classname}}];
-
-    @override
-    final String wireName = r'${{classname}}';
-
-
-
-    @override
-    Object serialize(Serializers serializers, ${{{classname}}} object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType({{classname}}))!;
-    }
-
+  @override
+  final Iterable<Type> types = const [${{classname}}, _$${{classname}}];
+
+  @override
+  final String wireName = r'${{classname}}';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ${{{classname}}} object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType({{classname}}))!;
+  }
+
+{{#vendorExtensions.x-has-self-and-ancestor-only-props}}{{>serialization/built_value/deserialize_properties}}
+
+{{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+  @override
+  ${{classname}} deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ${{classname}}Builder();
     {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-    {{>serialization/built_value/deserialize_properties}}
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
     {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-    
-    @override
-    ${{classname}} deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ${{classname}}Builder();
-        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}        
-        {{! when discriminator is involved, read it, then return based on value }}
-        return result.build();        
-    }
+    {{! when discriminator is involved, read it, then return based on value }}
+    return result.build();
+  }
 }
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache
index d7bcf23622b..ad2e2b0650b 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache
@@ -1,53 +1,35 @@
 {{! define variables that aren't inherited from allOf/anyOf/oneOf }}
 {{#vendorExtensions.x-self-only-props}}
-    {{#description}}
-    /// {{{.}}}
-    {{/description}}
-    @BuiltValueField(wireName: r'{{baseName}}')
-    {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
-    {{#allowableValues}}
-    // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
-    {{/allowableValues}}
-{{/vendorExtensions.x-self-only-props}}
-
-{{#anyOf}}
-{{#-first}}
-    /// Any Of {{#anyOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/anyOf}}
-    AnyOf get anyOf;
-
-{{/-first}}
-{{/anyOf}}
-{{#oneOf}}
-{{#-first}}
-    /// One Of {{#oneOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/oneOf}}
-    OneOf get oneOf;
-
-{{/-first}}
-{{/oneOf}}
-
-{{#discriminator}}
-    static const String discriminatorFieldName = r'{{propertyName}}';
-{{/discriminator}}
-{{#hasDiscriminatorWithNonEmptyMapping}}
-{{#discriminator}}
-    static const Map<String, Type> discriminatorMapping = {
-        {{#mappedModels}}
-        r'{{mappingName}}': {{modelName}},
-        {{/mappedModels}}
-    };
-    
-{{/discriminator}}
-{{/hasDiscriminatorWithNonEmptyMapping}}
-    {{^vendorExtensions.x-is-parent}}
-    {{classname}}._();
-    
-    factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
-    {{/vendorExtensions.x-is-parent}}
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults({{{classname}}}Builder b) => b{{#vendorExtensions.x-self-and-ancestor-only-props}}{{#defaultValue}}
-        ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vendorExtensions.x-self-and-ancestor-only-props}};
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
+  {{#description}}
+  /// {{{.}}}
+  {{/description}}
+  @BuiltValueField(wireName: r'{{baseName}}')
+  {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}};
+  {{#allowableValues}}
+  // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}}
+  {{/allowableValues}}
 
+{{/vendorExtensions.x-self-only-props}}{{#anyOf}}{{#-first}}  /// Any Of {{#anyOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/anyOf}}
+  AnyOf get anyOf;
+
+{{/-first}}{{/anyOf}}{{#oneOf}}{{#-first}}  /// One Of {{#oneOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/oneOf}}
+  OneOf get oneOf;
+
+{{/-first}}{{/oneOf}}{{#discriminator}}  static const String discriminatorFieldName = r'{{propertyName}}';{{#hasDiscriminatorWithNonEmptyMapping}}
+
+  static const Map<String, Type> discriminatorMapping = {
+    {{#mappedModels}}
+    r'{{mappingName}}': {{modelName}},
+    {{/mappedModels}}
+  };{{/hasDiscriminatorWithNonEmptyMapping}}
+
+{{/discriminator}}{{^vendorExtensions.x-is-parent}}  {{classname}}._();
+
+  factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults({{{classname}}}Builder b) => b{{#vendorExtensions.x-self-and-ancestor-only-props}}{{#defaultValue}}
+      ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vendorExtensions.x-self-and-ancestor-only-props}};
+
+{{/vendorExtensions.x-is-parent}}  @BuiltValueSerializer(custom: true)
+  static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
index cd818daa5eb..d2ab7963036 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
@@ -1,253 +1,306 @@
 class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
-    @override
-    final Iterable<Type> types = const [{{classname}}{{^vendorExtensions.x-is-parent}}, _${{classname}}{{/vendorExtensions.x-is-parent}}];
+  @override
+  final Iterable<Type> types = const [{{classname}}{{^vendorExtensions.x-is-parent}}, _${{classname}}{{/vendorExtensions.x-is-parent}}];
 
-    @override
-    final String wireName = r'{{classname}}';
+  @override
+  final String wireName = r'{{classname}}';
 
-    Iterable<Object?> _serializeProperties(Serializers serializers, {{{classname}}} object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        {{#vendorExtensions.x-self-and-ancestor-only-props}}
-        {{#required}}
-        {{!
-            A required property need to always be part of the serialized output.
-            When it is nullable, null is serialized, otherwise it is an error if it is null.
-        }}
-        yield r'{{baseName}}';
-        yield {{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}},
-                specifiedType: const {{>serialization/built_value/variable_serializer_type}});
-        {{/required}}
-        {{^required}}
-        if (object.{{{name}}} != null) {
-            {{! Non-required properties are only serialized if not null. }}
-            yield r'{{baseName}}';
-            yield serializers.serialize(object.{{{name}}},
-                    specifiedType: const {{>serialization/built_value/variable_serializer_type}});
-        }
-        {{/required}}
-        {{/vendorExtensions.x-self-and-ancestor-only-props}}
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    {{{classname}}} object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    {{#vendorExtensions.x-self-and-ancestor-only-props}}
+    {{#required}}
+    {{!
+        A required property need to always be part of the serialized output.
+        When it is nullable, null is serialized, otherwise it is an error if it is null.
+    }}
+    yield r'{{baseName}}';
+    yield {{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(
+      object.{{{name}}},
+      specifiedType: const {{>serialization/built_value/variable_serializer_type}},
+    );
+    {{/required}}
+    {{^required}}
+    if (object.{{{name}}} != null) {
+      {{! Non-required properties are only serialized if not null. }}
+      yield r'{{baseName}}';
+      yield serializers.serialize(
+        object.{{{name}}},
+        specifiedType: const {{>serialization/built_value/variable_serializer_type}},
+      );
     }
+    {{/required}}
+    {{/vendorExtensions.x-self-and-ancestor-only-props}}
+  }
 
-    @override
-    Object serialize(Serializers serializers, {{{classname}}} object,
-        {FullType specifiedType = FullType.unspecified}) {
-        {{! oneOf }}
-        {{#oneOf}}
-        {{#-first}}
-        final oneOf = object.oneOf;
-        {{#vendorExtensions.x-self-and-ancestor-only-props}}
-        final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-        result.addAll(serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType)) as Iterable<Object?>);
-        return result;        
-        {{/vendorExtensions.x-self-and-ancestor-only-props}}
-        {{^vendorExtensions.x-self-and-ancestor-only-props}}
-        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
-        {{/vendorExtensions.x-self-and-ancestor-only-props}}
-        {{/-first}}
-        {{/oneOf}}
-        {{! anyOf }}
-        {{#anyOf}}
-        {{#-first}}
-        final anyOf = object.anyOf;
-        final result = {{^vendorExtensions.x-has-self-and-ancestor-only-props}}<Object?>[]{{/vendorExtensions.x-has-self-and-ancestor-only-props}}{{#vendorExtensions.x-has-self-and-ancestor-only-props}}_serializeProperties(serializers, object, specifiedType: specifiedType).toList(){{/vendorExtensions.x-has-self-and-ancestor-only-props}};
-        for (var _valueEntry in anyOf.values.entries) {
-            final _typeIndex = _valueEntry.key;
-            final _type = anyOf.types[_typeIndex];
-            final _value = _valueEntry.value;
-            result.addAll(serializers.serialize(_value, specifiedType: FullType(_type)) as Iterable<Object?>);
-        }
-        return result;    
-        {{/-first}}
-        {{/anyOf}}
-        {{^oneOf}}
-        {{^anyOf}}
-        {{#hasDiscriminatorWithNonEmptyMapping}}
-        {{#discriminator}}
-        {{! handle discriminator }}
-        {{#mappedModels}}
-        if (object is {{modelName}}) {
-            return serializers.serialize(object, specifiedType: FullType({{modelName}}))!;
-        }
-        {{/mappedModels}}
-        {{/discriminator}}
-        {{/hasDiscriminatorWithNonEmptyMapping}}
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-        {{/anyOf}}
-        {{/oneOf}}
+  @override
+  Object serialize(
+    Serializers serializers,
+    {{{classname}}} object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    {{! oneOf }}
+    {{#oneOf}}
+    {{#-first}}
+    final oneOf = object.oneOf;
+    {{#vendorExtensions.x-self-and-ancestor-only-props}}
+    final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    result.addAll(serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType)) as Iterable<Object?>);
+    return result;
+    {{/vendorExtensions.x-self-and-ancestor-only-props}}
+    {{^vendorExtensions.x-self-and-ancestor-only-props}}
+    return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+    {{/vendorExtensions.x-self-and-ancestor-only-props}}
+    {{/-first}}
+    {{/oneOf}}
+    {{! anyOf }}
+    {{#anyOf}}
+    {{#-first}}
+    final anyOf = object.anyOf;
+    final result = {{^vendorExtensions.x-has-self-and-ancestor-only-props}}<Object?>[]{{/vendorExtensions.x-has-self-and-ancestor-only-props}}{{#vendorExtensions.x-has-self-and-ancestor-only-props}}_serializeProperties(serializers, object, specifiedType: specifiedType).toList(){{/vendorExtensions.x-has-self-and-ancestor-only-props}};
+    for (var _valueEntry in anyOf.values.entries) {
+      final _typeIndex = _valueEntry.key;
+      final _type = anyOf.types[_typeIndex];
+      final _value = _valueEntry.value;
+      result.addAll(serializers.serialize(_value, specifiedType: FullType(_type)) as Iterable<Object?>);
     }
+    return result;
+    {{/-first}}
+    {{/anyOf}}
+    {{^oneOf}}
+    {{^anyOf}}
+    {{#hasDiscriminatorWithNonEmptyMapping}}
+    {{#discriminator}}
+    {{! handle discriminator }}
+    {{#mappedModels}}
+    if (object is {{modelName}}) {
+      return serializers.serialize(object, specifiedType: FullType({{modelName}}))!;
+    }
+    {{/mappedModels}}
+    {{/discriminator}}
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    {{/anyOf}}
+    {{/oneOf}}
+  }
+
+{{#vendorExtensions.x-has-self-and-ancestor-only-props}}{{^vendorExtensions.x-is-parent}}{{>serialization/built_value/deserialize_properties}}
 
+{{/vendorExtensions.x-is-parent}}{{/vendorExtensions.x-has-self-and-ancestor-only-props}}  @override
+  {{classname}} deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    {{! oneOf }}
+    {{#oneOf}}
+    {{#-first}}
+    final result = {{#vendorExtensions.x-is-parent}}${{/vendorExtensions.x-is-parent}}{{classname}}Builder();
+    Object? oneOfDataSrc;
+    {{#hasDiscriminatorWithNonEmptyMapping}}
+    {{#discriminator}}
+    {{! has props, assign them to result, and extract unhandled }}
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
     {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-    {{>serialization/built_value/deserialize_properties}}{{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-    
-    @override
-    {{classname}} deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        {{! oneOf }}
-        {{#oneOf}}
-        {{#-first}}
-        final result = {{#vendorExtensions.x-is-parent}}${{/vendorExtensions.x-is-parent}}{{classname}}Builder();
-        Object? oneOfDataSrc;
-        {{#hasDiscriminatorWithNonEmptyMapping}}        
-        {{#discriminator}}        
-        {{! has props, assign them to result, and extract unhandled }}
-        final serializedList = (serialized as Iterable<Object?>).toList();    
-        final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
-        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        {{! only deserialize unhandled props }}
-        oneOfDataSrc = unhandled;
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
-        oneOfDataSrc = serialized;
-        {{! has no probs at all, pass the serialized as is }}
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        final oneOfTypes = [{{#mappedModels}}{{modelName}}, {{/mappedModels}}{{#vendorExtensions.x-is-parent}}${{classname}}{{/vendorExtensions.x-is-parent}}];
-        Object oneOfResult;
-        Type oneOfType;
-        switch (discValue) {
-            {{#mappedModels}}
-            case '{{mappingName}}':                
-                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType({{modelName}})) as {{modelName}};
-                oneOfType = {{modelName}};
-                break;
-            {{/mappedModels}}            
-            default:      
-                {{#vendorExtensions.x-is-parent}}
-                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(${{classname}})) as ${{classname}};            
-                oneOfType = ${{classname}};
-                {{/vendorExtensions.x-is-parent}}                      
-                {{^vendorExtensions.x-is-parent}}
-                throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
-                {{/vendorExtensions.x-is-parent}}                      
-        }    
-        result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
-        {{/discriminator}}
-        {{/hasDiscriminatorWithNonEmptyMapping}}
-        {{^hasDiscriminatorWithNonEmptyMapping}}        
-        {{! use the OneOfSerializer when there is no discriminator }}
-        final targetType = const FullType(OneOf, [{{#composedSchemas}}{{#oneOf}}{{>serialization/built_value/variable_serializer_type}}, {{/oneOf}}{{/composedSchemas}}]);
-        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{! has props, assign them to result, and extract unhandled }}
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        {{! only deserialize unhandled props }}
-        oneOfDataSrc = unhandled;        
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
-        {{! has no probs at all, pass the serialized as is }}
-        oneOfDataSrc = serialized;
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
-        {{/hasDiscriminatorWithNonEmptyMapping}}
-        return result.build();
-        {{/-first}}
-        {{/oneOf}}
-        {{! anyOf }}
-        {{#anyOf}}
-        {{#-first}}
-        final result = {{#vendorExtensions.x-is-parent}}${{/vendorExtensions.x-is-parent}}{{classname}}Builder();
-        Object? anyOfDataSrc;
-        {{#hasDiscriminatorWithNonEmptyMapping}}        
-        {{#discriminator}}        
-        {{! has props, assign them to result, and extract unhandled }}
-        final serializedList = (serialized as Iterable<Object?>).toList();    
-        final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
-        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        {{! only deserialize unhandled props }}
-        anyOfDataSrc = unhandled;
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
-        anyOfDataSrc = serialized;
-        {{! has no probs at all, pass the serialized as is }}
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        final anyOfTypes = [{{#mappedModels}}{{modelName}}, {{/mappedModels}}{{#vendorExtensions.x-is-parent}}${{classname}}{{/vendorExtensions.x-is-parent}}];
-        Object anyOfResult;
-        Type anyOfType;
-        switch (discValue) {
-            {{#mappedModels}}
-            case '{{mappingName}}':                
-                anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType({{modelName}})) as {{modelName}};
-                anyOfType = {{modelName}};
-                break;
-            {{/mappedModels}}            
-            default:      
-                {{#vendorExtensions.x-is-parent}}
-                anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType(${{classname}})) as ${{classname}};            
-                anyOfType = ${{classname}};
-                {{/vendorExtensions.x-is-parent}}                      
-                {{^vendorExtensions.x-is-parent}}
-                throw UnsupportedError("Couldn't deserialize anyOf for the discriminator value: ${discValue}");
-                {{/vendorExtensions.x-is-parent}}                      
-        }    
-        result.anyOf = AnyOfDynamic(values: {anyOfTypes.indexOf(anyOfType): anyOfResult}, types: anyOfTypes);
-        {{/discriminator}}
-        {{/hasDiscriminatorWithNonEmptyMapping}}
-        {{^hasDiscriminatorWithNonEmptyMapping}}        
-        {{! use the OneOfSerializer when there is no discriminator }}
-        final targetType = const FullType(AnyOf, [{{#composedSchemas}}{{#anyOf}}{{>serialization/built_value/variable_serializer_type}}, {{/anyOf}}{{/composedSchemas}}]);
-        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{! has props, assign them to result, and extract unhandled }}
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        {{! only deserialize unhandled props }}
-        anyOfDataSrc = unhandled;        
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{^vendorExtensions.x-has-self-and-ancestor-only-props}}        
-        {{! has no probs at all, pass the serialized as is }}
-        anyOfDataSrc = serialized;
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
-        result.anyOf = serializers.deserialize(anyOfDataSrc, specifiedType: targetType) as AnyOf;
-        {{/hasDiscriminatorWithNonEmptyMapping}}
-        return result.build();
-        {{/-first}}
-        {{/anyOf}}
-        {{! no anyOf nor oneOf, handles allOf trees }}
-        {{^oneOf}}
-        {{^anyOf}}
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result
+    );
+    {{! only deserialize unhandled props }}
+    oneOfDataSrc = unhandled;
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{^vendorExtensions.x-has-self-and-ancestor-only-props}}
+    oneOfDataSrc = serialized;
+    {{! has no probs at all, pass the serialized as is }}
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    final oneOfTypes = [{{#mappedModels}}{{modelName}}, {{/mappedModels}}{{#vendorExtensions.x-is-parent}}${{classname}}{{/vendorExtensions.x-is-parent}}];
+    Object oneOfResult;
+    Type oneOfType;
+    switch (discValue) {
+      {{#mappedModels}}
+      case '{{mappingName}}':
+        oneOfResult = serializers.deserialize(
+          oneOfDataSrc,
+          specifiedType: FullType({{modelName}}).
+        ) as {{modelName}};
+        oneOfType = {{modelName}};
+        break;
+      {{/mappedModels}}
+      default:
         {{#vendorExtensions.x-is-parent}}
-         {{! 
-            parent classes don't have builder
-            so they must delegate to another serializer using 
-            1) discriminator + mapping            
-            2) concrete implmentation ($classname)
-        }}
-        {{#hasDiscriminatorWithNonEmptyMapping}}        
-        {{#discriminator}}        
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
-        switch (discValue) {
-            {{#mappedModels}}
-            case '{{mappingName}}':                
-                return serializers.deserialize(serialized, specifiedType: FullType({{modelName}})) as {{modelName}};
-            {{/mappedModels}}            
-            default:            
-                return serializers.deserialize(serialized, specifiedType: FullType(${{classname}})) as ${{classname}};
-        }
-        {{/discriminator}}
-        {{/hasDiscriminatorWithNonEmptyMapping}}
-        {{^hasDiscriminatorWithNonEmptyMapping}}  
-        return serializers.deserialize(serialized, specifiedType: FullType(${{classname}})) as ${{classname}};
-        {{/hasDiscriminatorWithNonEmptyMapping}}
+        oneOfResult = serializers.deserialize(
+          oneOfDataSrc,
+          specifiedType: FullType(${{classname}}),
+        ) as ${{classname}};
+        oneOfType = ${{classname}};
+        {{/vendorExtensions.x-is-parent}}
+        {{^vendorExtensions.x-is-parent}}
+        throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
+        {{/vendorExtensions.x-is-parent}}
+    }
+    result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
+    {{/discriminator}}
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    {{^hasDiscriminatorWithNonEmptyMapping}}
+    {{! use the OneOfSerializer when there is no discriminator }}
+    final targetType = const FullType(OneOf, [{{#composedSchemas}}{{#oneOf}}{{>serialization/built_value/variable_serializer_type}}, {{/oneOf}}{{/composedSchemas}}]);
+    {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{! has props, assign them to result, and extract unhandled }}
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    {{! only deserialize unhandled props }}
+    oneOfDataSrc = unhandled;
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{^vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{! has no probs at all, pass the serialized as is }}
+    oneOfDataSrc = serialized;
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    return result.build();
+    {{/-first}}
+    {{/oneOf}}
+    {{! anyOf }}
+    {{#anyOf}}
+    {{#-first}}
+    final result = {{#vendorExtensions.x-is-parent}}${{/vendorExtensions.x-is-parent}}{{classname}}Builder();
+    Object? anyOfDataSrc;
+    {{#hasDiscriminatorWithNonEmptyMapping}}
+    {{#discriminator}}
+    {{! has props, assign them to result, and extract unhandled }}
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    {{! only deserialize unhandled props }}
+    anyOfDataSrc = unhandled;
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{^vendorExtensions.x-has-self-and-ancestor-only-props}}
+    anyOfDataSrc = serialized;
+    {{! has no probs at all, pass the serialized as is }}
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    final anyOfTypes = [{{#mappedModels}}{{modelName}}, {{/mappedModels}}{{#vendorExtensions.x-is-parent}}${{classname}}{{/vendorExtensions.x-is-parent}}];
+    Object anyOfResult;
+    Type anyOfType;
+    switch (discValue) {
+      {{#mappedModels}}
+      case '{{mappingName}}':
+        anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType({{modelName}})) as {{modelName}};
+        anyOfType = {{modelName}};
+        break;
+      {{/mappedModels}}
+      default:
+        {{#vendorExtensions.x-is-parent}}
+        anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType(${{classname}})) as ${{classname}};
+        anyOfType = ${{classname}};
         {{/vendorExtensions.x-is-parent}}
         {{^vendorExtensions.x-is-parent}}
-        final result = {{classname}}Builder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
-        {{! has props, assign them to result, and extract unhandled }}
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        {{/vendorExtensions.x-has-self-and-ancestor-only-props}}        
-        return result.build();
+        throw UnsupportedError("Couldn't deserialize anyOf for the discriminator value: ${discValue}");
         {{/vendorExtensions.x-is-parent}}
-        {{/anyOf}}
-        {{/oneOf}}
     }
+    result.anyOf = AnyOfDynamic(values: {anyOfTypes.indexOf(anyOfType): anyOfResult}, types: anyOfTypes);
+    {{/discriminator}}
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    {{^hasDiscriminatorWithNonEmptyMapping}}
+    {{! use the OneOfSerializer when there is no discriminator }}
+    final targetType = const FullType(AnyOf, [{{#composedSchemas}}{{#anyOf}}{{>serialization/built_value/variable_serializer_type}}, {{/anyOf}}{{/composedSchemas}}]);
+    {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{! has props, assign them to result, and extract unhandled }}
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    {{! only deserialize unhandled props }}
+    anyOfDataSrc = unhandled;
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{^vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{! has no probs at all, pass the serialized as is }}
+    anyOfDataSrc = serialized;
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    result.anyOf = serializers.deserialize(anyOfDataSrc, specifiedType: targetType) as AnyOf;
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    return result.build();
+    {{/-first}}
+    {{/anyOf}}
+    {{! no anyOf nor oneOf, handles allOf trees }}
+    {{^oneOf}}
+    {{^anyOf}}
+    {{#vendorExtensions.x-is-parent}}
+    {{!
+        parent classes don't have builder
+        so they must delegate to another serializer using
+        1) discriminator + mapping
+        2) concrete implmentation ($classname)
+    }}
+    {{#hasDiscriminatorWithNonEmptyMapping}}
+    {{#discriminator}}
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf({{classname}}.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    switch (discValue) {
+      {{#mappedModels}}
+      case '{{mappingName}}':
+        return serializers.deserialize(serialized, specifiedType: FullType({{modelName}})) as {{modelName}};
+      {{/mappedModels}}
+      default:
+        return serializers.deserialize(serialized, specifiedType: FullType(${{classname}})) as ${{classname}};
+    }
+    {{/discriminator}}
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    {{^hasDiscriminatorWithNonEmptyMapping}}
+    return serializers.deserialize(serialized, specifiedType: FullType(${{classname}})) as ${{classname}};
+    {{/hasDiscriminatorWithNonEmptyMapping}}
+    {{/vendorExtensions.x-is-parent}}
+    {{^vendorExtensions.x-is-parent}}
+    final result = {{classname}}Builder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    {{#vendorExtensions.x-has-self-and-ancestor-only-props}}
+    {{! has props, assign them to result, and extract unhandled }}
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    {{/vendorExtensions.x-has-self-and-ancestor-only-props}}
+    return result.build();
+    {{/vendorExtensions.x-is-parent}}
+    {{/anyOf}}
+    {{/oneOf}}
+  }
 }
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
index 61b014e1909..d64ec8086c3 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/deserialize_properties.mustache
@@ -1,49 +1,57 @@
-void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required {{classname}}Builder result, required List<Object?> unhandled}) {
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required {{classname}}Builder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-            {{#vendorExtensions.x-self-and-ancestor-only-props}}
-                case r'{{baseName}}':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}};
-                {{#isNullable}}
-                if (valueDes == null) continue;
-                {{/isNullable}}
-                {{#isContainer}}
-                result.{{{name}}}.replace(valueDes);
-                {{/isContainer}}
-                {{^isContainer}}
-                {{#isEnum}}
-                result.{{{name}}} = valueDes;
-                {{/isEnum}}
-                {{^isEnum}}
-                {{#isModel}}
-                {{#isPrimitiveType}}
-                {{! These are models that have been manually marked as primitive via generator param. }}
-                result.{{{name}}} = valueDes;
-                {{/isPrimitiveType}}
-                {{^isPrimitiveType}}
-                {{#vendorExtensions.x-is-parent}}
-                result.{{{name}}} = valueDes;
-                {{/vendorExtensions.x-is-parent}}
-                {{^vendorExtensions.x-is-parent}}
-                result.{{{name}}}.replace(valueDes);
-                {{/vendorExtensions.x-is-parent}}
-                {{/isPrimitiveType}}
-                {{/isModel}}
-                {{^isModel}}
-                result.{{{name}}} = valueDes;
-                {{/isModel}}
-                {{/isEnum}}
-                {{/isContainer}}
-                break;
-            {{/vendorExtensions.x-self-and-ancestor-only-props}}
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        {{#vendorExtensions.x-self-and-ancestor-only-props}}
+        case r'{{baseName}}':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const {{>serialization/built_value/variable_serializer_type}},
+          ) as {{>serialization/built_value/variable_type}};
+          {{#isNullable}}
+          if (valueDes == null) continue;
+          {{/isNullable}}
+          {{#isContainer}}
+          result.{{{name}}}.replace(valueDes);
+          {{/isContainer}}
+          {{^isContainer}}
+          {{#isEnum}}
+          result.{{{name}}} = valueDes;
+          {{/isEnum}}
+          {{^isEnum}}
+          {{#isModel}}
+          {{#isPrimitiveType}}
+          {{! These are models that have been manually marked as primitive via generator param. }}
+          result.{{{name}}} = valueDes;
+          {{/isPrimitiveType}}
+          {{^isPrimitiveType}}
+          {{#vendorExtensions.x-is-parent}}
+          result.{{{name}}} = valueDes;
+          {{/vendorExtensions.x-is-parent}}
+          {{^vendorExtensions.x-is-parent}}
+          result.{{{name}}}.replace(valueDes);
+          {{/vendorExtensions.x-is-parent}}
+          {{/isPrimitiveType}}
+          {{/isModel}}
+          {{^isModel}}
+          result.{{{name}}} = valueDes;
+          {{/isModel}}
+          {{/isEnum}}
+          {{/isContainer}}
+          break;
+        {{/vendorExtensions.x-self-and-ancestor-only-props}}
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
-}
\ No newline at end of file
+  }
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
index 1f5d670ecf3..f0a1fda9da8 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'apple.g.dart';
 
@@ -16,75 +13,95 @@ part 'apple.g.dart';
 /// * [kind] 
 @BuiltValue()
 abstract class Apple implements Built<Apple, AppleBuilder> {
-    @BuiltValueField(wireName: r'kind')
-    String? get kind;
+  @BuiltValueField(wireName: r'kind')
+  String? get kind;
 
+  Apple._();
 
-    Apple._();
-    
-    factory Apple([void updates(AppleBuilder b)]) = _$Apple;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(AppleBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Apple> get serializer => _$AppleSerializer();
+  factory Apple([void updates(AppleBuilder b)]) = _$Apple;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(AppleBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Apple> get serializer => _$AppleSerializer();
 }
 
 class _$AppleSerializer implements PrimitiveSerializer<Apple> {
-    @override
-    final Iterable<Type> types = const [Apple, _$Apple];
-
-    @override
-    final String wireName = r'Apple';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Apple object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.kind != null) {
-            yield r'kind';
-            yield serializers.serialize(object.kind,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, Apple object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [Apple, _$Apple];
+
+  @override
+  final String wireName = r'Apple';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Apple object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.kind != null) {
+      yield r'kind';
+      yield serializers.serialize(
+        object.kind,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AppleBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Apple object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required AppleBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'kind':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.kind = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Apple deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = AppleBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'kind':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.kind = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Apple deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = AppleBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
index f16141a5be0..483def2cd19 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'banana.g.dart';
 
@@ -16,75 +13,95 @@ part 'banana.g.dart';
 /// * [count] 
 @BuiltValue()
 abstract class Banana implements Built<Banana, BananaBuilder> {
-    @BuiltValueField(wireName: r'count')
-    num? get count;
+  @BuiltValueField(wireName: r'count')
+  num? get count;
 
+  Banana._();
 
-    Banana._();
-    
-    factory Banana([void updates(BananaBuilder b)]) = _$Banana;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(BananaBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Banana> get serializer => _$BananaSerializer();
+  factory Banana([void updates(BananaBuilder b)]) = _$Banana;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(BananaBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Banana> get serializer => _$BananaSerializer();
 }
 
 class _$BananaSerializer implements PrimitiveSerializer<Banana> {
-    @override
-    final Iterable<Type> types = const [Banana, _$Banana];
-
-    @override
-    final String wireName = r'Banana';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Banana object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.count != null) {
-            yield r'count';
-            yield serializers.serialize(object.count,
-                    specifiedType: const FullType(num));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, Banana object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [Banana, _$Banana];
+
+  @override
+  final String wireName = r'Banana';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Banana object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.count != null) {
+      yield r'count';
+      yield serializers.serialize(
+        object.count,
+        specifiedType: const FullType(num),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BananaBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Banana object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required BananaBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'count':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.count = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Banana deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = BananaBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'count':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.count = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Banana deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = BananaBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
index d64d7e2f96b..2b648c0faa1 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
@@ -7,8 +7,7 @@ import 'package:openapi/src/model/banana.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
+import 'package:one_of/one_of.dart';
 
 part 'fruit.g.dart';
 
@@ -20,85 +19,105 @@ part 'fruit.g.dart';
 /// * [count] 
 @BuiltValue()
 abstract class Fruit implements Built<Fruit, FruitBuilder> {
-    @BuiltValueField(wireName: r'color')
-    String? get color;
-
-    /// One Of [Apple], [Banana]
-    OneOf get oneOf;
+  @BuiltValueField(wireName: r'color')
+  String? get color;
 
+  /// One Of [Apple], [Banana]
+  OneOf get oneOf;
 
-    Fruit._();
-    
-    factory Fruit([void updates(FruitBuilder b)]) = _$Fruit;
+  Fruit._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FruitBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Fruit> get serializer => _$FruitSerializer();
+  factory Fruit([void updates(FruitBuilder b)]) = _$Fruit;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FruitBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Fruit> get serializer => _$FruitSerializer();
 }
 
 class _$FruitSerializer implements PrimitiveSerializer<Fruit> {
-    @override
-    final Iterable<Type> types = const [Fruit, _$Fruit];
-
-    @override
-    final String wireName = r'Fruit';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Fruit object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.color != null) {
-            yield r'color';
-            yield serializers.serialize(object.color,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, Fruit object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final oneOf = object.oneOf;
-        final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-        result.addAll(serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType)) as Iterable<Object?>);
-        return result;        
+  @override
+  final Iterable<Type> types = const [Fruit, _$Fruit];
+
+  @override
+  final String wireName = r'Fruit';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Fruit object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.color != null) {
+      yield r'color';
+      yield serializers.serialize(
+        object.color,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FruitBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Fruit object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final oneOf = object.oneOf;
+    final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    result.addAll(serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType)) as Iterable<Object?>);
+    return result;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FruitBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'color':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.color = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Fruit deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FruitBuilder();
-        Object? oneOfDataSrc;
-        final targetType = const FullType(OneOf, [FullType(Apple), FullType(Banana), ]);
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        oneOfDataSrc = unhandled;        
-        result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'color':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.color = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Fruit deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FruitBuilder();
+    Object? oneOfDataSrc;
+    final targetType = const FullType(OneOf, [FullType(Apple), FullType(Banana), ]);
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    oneOfDataSrc = unhandled;
+    result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
index eb97ff51e5d..c77343f919c 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'addressable.g.dart';
 
@@ -17,83 +14,66 @@ part 'addressable.g.dart';
 /// * [id] - unique identifier
 @BuiltValue(instantiable: false)
 abstract class Addressable  {
-    /// Hyperlink reference
-    @BuiltValueField(wireName: r'href')
-    String? get href;
-    /// unique identifier
-    @BuiltValueField(wireName: r'id')
-    String? get id;
-
-
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(AddressableBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Addressable> get serializer => _$AddressableSerializer();
+  /// Hyperlink reference
+  @BuiltValueField(wireName: r'href')
+  String? get href;
 
+  /// unique identifier
+  @BuiltValueField(wireName: r'id')
+  String? get id;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Addressable> get serializer => _$AddressableSerializer();
 }
 
 class _$AddressableSerializer implements PrimitiveSerializer<Addressable> {
-    @override
-    final Iterable<Type> types = const [Addressable];
-
-    @override
-    final String wireName = r'Addressable';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Addressable object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Addressable];
+
+  @override
+  final String wireName = r'Addressable';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Addressable object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Addressable object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AddressableBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Addressable deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        return serializers.deserialize(serialized, specifiedType: FullType($Addressable)) as $Addressable;
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Addressable object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  Addressable deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.deserialize(serialized, specifiedType: FullType($Addressable)) as $Addressable;
+  }
 }
 
-/// a concrete implmentation of [Addressable], since [Addressable] is not instantiable
+/// a concrete implementation of [Addressable], since [Addressable] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $Addressable implements Addressable, Built<$Addressable, $AddressableBuilder> {
   $Addressable._();
@@ -102,59 +82,79 @@ abstract class $Addressable implements Addressable, Built<$Addressable, $Address
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($AddressableBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$Addressable> get serializer => _$$AddressableSerializer();
 }
 
 class _$$AddressableSerializer implements PrimitiveSerializer<$Addressable> {
-    @override
-    final Iterable<Type> types = const [$Addressable, _$$Addressable];
-
-    @override
-    final String wireName = r'$Addressable';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $Addressable object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(Addressable))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AddressableBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$Addressable, _$$Addressable];
+
+  @override
+  final String wireName = r'$Addressable';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $Addressable object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(Addressable))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required AddressableBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    $Addressable deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $AddressableBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $Addressable deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $AddressableBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
index a2386b55eaf..b5c91a7cfbf 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
@@ -6,9 +6,6 @@ import 'package:openapi/src/model/foo_ref_or_value.dart';
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'bar.g.dart';
 
@@ -25,148 +22,199 @@ part 'bar.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class Bar implements Entity, Built<Bar, BarBuilder> {
-    @BuiltValueField(wireName: r'foo')
-    FooRefOrValue? get foo;
-    @BuiltValueField(wireName: r'fooPropB')
-    String? get fooPropB;
-    @BuiltValueField(wireName: r'barPropA')
-    String? get barPropA;
+  @BuiltValueField(wireName: r'foo')
+  FooRefOrValue? get foo;
 
+  @BuiltValueField(wireName: r'fooPropB')
+  String? get fooPropB;
 
-    static const String discriminatorFieldName = r'atType';
-    Bar._();
-    
-    factory Bar([void updates(BarBuilder b)]) = _$Bar;
+  @BuiltValueField(wireName: r'barPropA')
+  String? get barPropA;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(BarBuilder b) => b;
+  static const String discriminatorFieldName = r'atType';
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Bar> get serializer => _$BarSerializer();
+  Bar._();
 
+  factory Bar([void updates(BarBuilder b)]) = _$Bar;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(BarBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Bar> get serializer => _$BarSerializer();
 }
 
 class _$BarSerializer implements PrimitiveSerializer<Bar> {
-    @override
-    final Iterable<Type> types = const [Bar, _$Bar];
-
-    @override
-    final String wireName = r'Bar';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Bar object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.foo != null) {
-            yield r'foo';
-            yield serializers.serialize(object.foo,
-                    specifiedType: const FullType(FooRefOrValue));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.fooPropB != null) {
-            yield r'fooPropB';
-            yield serializers.serialize(object.fooPropB,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
-        if (object.barPropA != null) {
-            yield r'barPropA';
-            yield serializers.serialize(object.barPropA,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Bar, _$Bar];
+
+  @override
+  final String wireName = r'Bar';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Bar object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Bar object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.foo != null) {
+      yield r'foo';
+      yield serializers.serialize(
+        object.foo,
+        specifiedType: const FullType(FooRefOrValue),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'foo':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
-                result.foo.replace(valueDes);
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'fooPropB':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.fooPropB = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-                case r'barPropA':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.barPropA = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    Bar deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = BarBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.fooPropB != null) {
+      yield r'fooPropB';
+      yield serializers.serialize(
+        object.fooPropB,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
     }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+    if (object.barPropA != null) {
+      yield r'barPropA';
+      yield serializers.serialize(
+        object.barPropA,
+        specifiedType: const FullType(String),
+      );
+    }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Bar object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required BarBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'foo':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(FooRefOrValue),
+          ) as FooRefOrValue;
+          result.foo.replace(valueDes);
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'fooPropB':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.fooPropB = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        case r'barPropA':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.barPropA = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  Bar deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = BarBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
index a2a5406e34a..76e772b3325 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
@@ -6,9 +6,6 @@ import 'package:openapi/src/model/foo_ref_or_value.dart';
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'bar_create.g.dart';
 
@@ -25,148 +22,199 @@ part 'bar_create.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class BarCreate implements Entity, Built<BarCreate, BarCreateBuilder> {
-    @BuiltValueField(wireName: r'foo')
-    FooRefOrValue? get foo;
-    @BuiltValueField(wireName: r'fooPropB')
-    String? get fooPropB;
-    @BuiltValueField(wireName: r'barPropA')
-    String? get barPropA;
+  @BuiltValueField(wireName: r'foo')
+  FooRefOrValue? get foo;
 
+  @BuiltValueField(wireName: r'fooPropB')
+  String? get fooPropB;
 
-    static const String discriminatorFieldName = r'atType';
-    BarCreate._();
-    
-    factory BarCreate([void updates(BarCreateBuilder b)]) = _$BarCreate;
+  @BuiltValueField(wireName: r'barPropA')
+  String? get barPropA;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(BarCreateBuilder b) => b;
+  static const String discriminatorFieldName = r'atType';
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<BarCreate> get serializer => _$BarCreateSerializer();
+  BarCreate._();
 
+  factory BarCreate([void updates(BarCreateBuilder b)]) = _$BarCreate;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(BarCreateBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<BarCreate> get serializer => _$BarCreateSerializer();
 }
 
 class _$BarCreateSerializer implements PrimitiveSerializer<BarCreate> {
-    @override
-    final Iterable<Type> types = const [BarCreate, _$BarCreate];
-
-    @override
-    final String wireName = r'BarCreate';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, BarCreate object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.foo != null) {
-            yield r'foo';
-            yield serializers.serialize(object.foo,
-                    specifiedType: const FullType(FooRefOrValue));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.fooPropB != null) {
-            yield r'fooPropB';
-            yield serializers.serialize(object.fooPropB,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
-        if (object.barPropA != null) {
-            yield r'barPropA';
-            yield serializers.serialize(object.barPropA,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [BarCreate, _$BarCreate];
+
+  @override
+  final String wireName = r'BarCreate';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    BarCreate object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, BarCreate object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.foo != null) {
+      yield r'foo';
+      yield serializers.serialize(
+        object.foo,
+        specifiedType: const FullType(FooRefOrValue),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarCreateBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'foo':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(FooRefOrValue)) as FooRefOrValue;
-                result.foo.replace(valueDes);
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'fooPropB':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.fooPropB = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-                case r'barPropA':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.barPropA = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    BarCreate deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = BarCreateBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.fooPropB != null) {
+      yield r'fooPropB';
+      yield serializers.serialize(
+        object.fooPropB,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
     }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+    if (object.barPropA != null) {
+      yield r'barPropA';
+      yield serializers.serialize(
+        object.barPropA,
+        specifiedType: const FullType(String),
+      );
+    }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    BarCreate object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required BarCreateBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'foo':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(FooRefOrValue),
+          ) as FooRefOrValue;
+          result.foo.replace(valueDes);
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'fooPropB':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.fooPropB = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        case r'barPropA':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.barPropA = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  BarCreate deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = BarCreateBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
index ed20df535ff..991923a6d5d 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/entity_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'bar_ref.g.dart';
 
@@ -21,132 +18,176 @@ part 'bar_ref.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class BarRef implements EntityRef, Built<BarRef, BarRefBuilder> {
+  static const String discriminatorFieldName = r'atType';
 
+  BarRef._();
 
-    static const String discriminatorFieldName = r'atType';
-    BarRef._();
-    
-    factory BarRef([void updates(BarRefBuilder b)]) = _$BarRef;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(BarRefBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<BarRef> get serializer => _$BarRefSerializer();
+  factory BarRef([void updates(BarRefBuilder b)]) = _$BarRef;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(BarRefBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<BarRef> get serializer => _$BarRefSerializer();
 }
 
 class _$BarRefSerializer implements PrimitiveSerializer<BarRef> {
-    @override
-    final Iterable<Type> types = const [BarRef, _$BarRef];
-
-    @override
-    final String wireName = r'BarRef';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, BarRef object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atReferredType != null) {
-            yield r'@referredType';
-            yield serializers.serialize(object.atReferredType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [BarRef, _$BarRef];
+
+  @override
+  final String wireName = r'BarRef';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    BarRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, BarRef object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.atReferredType != null) {
+      yield r'@referredType';
+      yield serializers.serialize(
+        object.atReferredType,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required BarRefBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@referredType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atReferredType = valueDes;
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    BarRef deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = BarRefBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    BarRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required BarRefBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@referredType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atReferredType = valueDes;
+          break;
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  BarRef deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = BarRefBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
index f6148eb03f1..a097cc52ec3 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
@@ -7,8 +7,7 @@ import 'package:openapi/src/model/bar.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
+import 'package:one_of/one_of.dart';
 
 part 'bar_ref_or_value.g.dart';
 
@@ -22,79 +21,86 @@ part 'bar_ref_or_value.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class BarRefOrValue implements Built<BarRefOrValue, BarRefOrValueBuilder> {
+  /// One Of [Bar], [BarRef]
+  OneOf get oneOf;
 
-    /// One Of [Bar], [BarRef]
-    OneOf get oneOf;
-
+  static const String discriminatorFieldName = r'atType';
 
-    static const String discriminatorFieldName = r'atType';
-    static const Map<String, Type> discriminatorMapping = {
-        r'Bar': Bar,
-        r'BarRef': BarRef,
-    };
-    
-    BarRefOrValue._();
-    
-    factory BarRefOrValue([void updates(BarRefOrValueBuilder b)]) = _$BarRefOrValue;
+  static const Map<String, Type> discriminatorMapping = {
+    r'Bar': Bar,
+    r'BarRef': BarRef,
+  };
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(BarRefOrValueBuilder b) => b;
+  BarRefOrValue._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<BarRefOrValue> get serializer => _$BarRefOrValueSerializer();
+  factory BarRefOrValue([void updates(BarRefOrValueBuilder b)]) = _$BarRefOrValue;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(BarRefOrValueBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<BarRefOrValue> get serializer => _$BarRefOrValueSerializer();
 }
 
 class _$BarRefOrValueSerializer implements PrimitiveSerializer<BarRefOrValue> {
-    @override
-    final Iterable<Type> types = const [BarRefOrValue, _$BarRefOrValue];
-
-    @override
-    final String wireName = r'BarRefOrValue';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, BarRefOrValue object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-    }
-
-    @override
-    Object serialize(Serializers serializers, BarRefOrValue object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final oneOf = object.oneOf;
-        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
-    }
-
-
-    
-    @override
-    BarRefOrValue deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = BarRefOrValueBuilder();
-        Object? oneOfDataSrc;
-        final serializedList = (serialized as Iterable<Object?>).toList();    
-        final discIndex = serializedList.indexOf(BarRefOrValue.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
-        oneOfDataSrc = serialized;
-        final oneOfTypes = [Bar, BarRef, ];
-        Object oneOfResult;
-        Type oneOfType;
-        switch (discValue) {
-            case 'Bar':                
-                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(Bar)) as Bar;
-                oneOfType = Bar;
-                break;
-            case 'BarRef':                
-                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(BarRef)) as BarRef;
-                oneOfType = BarRef;
-                break;
-            default:      
-                throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
-        }    
-        result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
-        return result.build();
+  @override
+  final Iterable<Type> types = const [BarRefOrValue, _$BarRefOrValue];
+
+  @override
+  final String wireName = r'BarRefOrValue';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    BarRefOrValue object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    BarRefOrValue object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final oneOf = object.oneOf;
+    return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+  }
+
+  @override
+  BarRefOrValue deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = BarRefOrValueBuilder();
+    Object? oneOfDataSrc;
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf(BarRefOrValue.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    oneOfDataSrc = serialized;
+    final oneOfTypes = [Bar, BarRef, ];
+    Object oneOfResult;
+    Type oneOfType;
+    switch (discValue) {
+      case 'Bar':
+        oneOfResult = serializers.deserialize(
+          oneOfDataSrc,
+          specifiedType: FullType(Bar).
+        ) as Bar;
+        oneOfType = Bar;
+        break;
+      case 'BarRef':
+        oneOfResult = serializers.deserialize(
+          oneOfDataSrc,
+          specifiedType: FullType(BarRef).
+        ) as BarRef;
+        oneOfType = BarRef;
+        break;
+      default:
+        throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
     }
+    result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
index f7c4b1e3079..dbb76e6a051 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
@@ -12,9 +12,6 @@ import 'package:openapi/src/model/bar_create.dart';
 import 'package:openapi/src/model/bar.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'entity.g.dart';
 
@@ -28,151 +25,124 @@ part 'entity.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue(instantiable: false)
 abstract class Entity implements Addressable, Extensible {
+  static const String discriminatorFieldName = r'atType';
 
+  static const Map<String, Type> discriminatorMapping = {
+    r'Bar': Bar,
+    r'Bar_Create': BarCreate,
+    r'Foo': Foo,
+    r'Pasta': Pasta,
+    r'Pizza': Pizza,
+    r'PizzaSpeziale': PizzaSpeziale,
+  };
 
-    static const String discriminatorFieldName = r'atType';
-    static const Map<String, Type> discriminatorMapping = {
-        r'Bar': Bar,
-        r'Bar_Create': BarCreate,
-        r'Foo': Foo,
-        r'Pasta': Pasta,
-        r'Pizza': Pizza,
-        r'PizzaSpeziale': PizzaSpeziale,
-    };
-    
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(EntityBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Entity> get serializer => _$EntitySerializer();
-
-
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Entity> get serializer => _$EntitySerializer();
 }
 
 class _$EntitySerializer implements PrimitiveSerializer<Entity> {
-    @override
-    final Iterable<Type> types = const [Entity];
-
-    @override
-    final String wireName = r'Entity';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Entity object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [Entity];
+
+  @override
+  final String wireName = r'Entity';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Entity object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Entity object,
-        {FullType specifiedType = FullType.unspecified}) {
-        if (object is Bar) {
-            return serializers.serialize(object, specifiedType: FullType(Bar))!;
-        }
-        if (object is BarCreate) {
-            return serializers.serialize(object, specifiedType: FullType(BarCreate))!;
-        }
-        if (object is Foo) {
-            return serializers.serialize(object, specifiedType: FullType(Foo))!;
-        }
-        if (object is Pasta) {
-            return serializers.serialize(object, specifiedType: FullType(Pasta))!;
-        }
-        if (object is Pizza) {
-            return serializers.serialize(object, specifiedType: FullType(Pizza))!;
-        }
-        if (object is PizzaSpeziale) {
-            return serializers.serialize(object, specifiedType: FullType(PizzaSpeziale))!;
-        }
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    Entity deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final discIndex = serializedList.indexOf(Entity.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
-        switch (discValue) {
-            case 'Bar':                
-                return serializers.deserialize(serialized, specifiedType: FullType(Bar)) as Bar;
-            case 'Bar_Create':                
-                return serializers.deserialize(serialized, specifiedType: FullType(BarCreate)) as BarCreate;
-            case 'Foo':                
-                return serializers.deserialize(serialized, specifiedType: FullType(Foo)) as Foo;
-            case 'Pasta':                
-                return serializers.deserialize(serialized, specifiedType: FullType(Pasta)) as Pasta;
-            case 'Pizza':                
-                return serializers.deserialize(serialized, specifiedType: FullType(Pizza)) as Pizza;
-            case 'PizzaSpeziale':                
-                return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
-            default:            
-                return serializers.deserialize(serialized, specifiedType: FullType($Entity)) as $Entity;
-        }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Entity object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    if (object is Bar) {
+      return serializers.serialize(object, specifiedType: FullType(Bar))!;
+    }
+    if (object is BarCreate) {
+      return serializers.serialize(object, specifiedType: FullType(BarCreate))!;
+    }
+    if (object is Foo) {
+      return serializers.serialize(object, specifiedType: FullType(Foo))!;
+    }
+    if (object is Pasta) {
+      return serializers.serialize(object, specifiedType: FullType(Pasta))!;
+    }
+    if (object is Pizza) {
+      return serializers.serialize(object, specifiedType: FullType(Pizza))!;
     }
+    if (object is PizzaSpeziale) {
+      return serializers.serialize(object, specifiedType: FullType(PizzaSpeziale))!;
+    }
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  Entity deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf(Entity.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    switch (discValue) {
+      case 'Bar':
+        return serializers.deserialize(serialized, specifiedType: FullType(Bar)) as Bar;
+      case 'Bar_Create':
+        return serializers.deserialize(serialized, specifiedType: FullType(BarCreate)) as BarCreate;
+      case 'Foo':
+        return serializers.deserialize(serialized, specifiedType: FullType(Foo)) as Foo;
+      case 'Pasta':
+        return serializers.deserialize(serialized, specifiedType: FullType(Pasta)) as Pasta;
+      case 'Pizza':
+        return serializers.deserialize(serialized, specifiedType: FullType(Pizza)) as Pizza;
+      case 'PizzaSpeziale':
+        return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
+      default:
+        return serializers.deserialize(serialized, specifiedType: FullType($Entity)) as $Entity;
+    }
+  }
 }
 
-/// a concrete implmentation of [Entity], since [Entity] is not instantiable
+/// a concrete implementation of [Entity], since [Entity] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $Entity implements Entity, Built<$Entity, $EntityBuilder> {
   $Entity._();
@@ -181,74 +151,100 @@ abstract class $Entity implements Entity, Built<$Entity, $EntityBuilder> {
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($EntityBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$Entity> get serializer => _$$EntitySerializer();
 }
 
 class _$$EntitySerializer implements PrimitiveSerializer<$Entity> {
-    @override
-    final Iterable<Type> types = const [$Entity, _$$Entity];
-
-    @override
-    final String wireName = r'$Entity';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $Entity object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(Entity))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$Entity, _$$Entity];
+
+  @override
+  final String wireName = r'$Entity';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $Entity object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(Entity))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required EntityBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    $Entity deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $EntityBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $Entity deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $EntityBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
index 025b7542766..dab05e4c597 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
@@ -8,9 +8,6 @@ import 'package:openapi/src/model/addressable.dart';
 import 'package:openapi/src/model/foo_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'entity_ref.g.dart';
 
@@ -26,153 +23,122 @@ part 'entity_ref.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue(instantiable: false)
 abstract class EntityRef implements Addressable, Extensible {
-    /// The actual type of the target instance when needed for disambiguation.
-    @BuiltValueField(wireName: r'@referredType')
-    String? get atReferredType;
-    /// Name of the related entity.
-    @BuiltValueField(wireName: r'name')
-    String? get name;
+  /// The actual type of the target instance when needed for disambiguation.
+  @BuiltValueField(wireName: r'@referredType')
+  String? get atReferredType;
 
+  /// Name of the related entity.
+  @BuiltValueField(wireName: r'name')
+  String? get name;
 
-    static const String discriminatorFieldName = r'atType';
-    static const Map<String, Type> discriminatorMapping = {
-        r'BarRef': BarRef,
-        r'FooRef': FooRef,
-    };
-    
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(EntityRefBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<EntityRef> get serializer => _$EntityRefSerializer();
+  static const String discriminatorFieldName = r'atType';
 
+  static const Map<String, Type> discriminatorMapping = {
+    r'BarRef': BarRef,
+    r'FooRef': FooRef,
+  };
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<EntityRef> get serializer => _$EntityRefSerializer();
 }
 
 class _$EntityRefSerializer implements PrimitiveSerializer<EntityRef> {
-    @override
-    final Iterable<Type> types = const [EntityRef];
+  @override
+  final Iterable<Type> types = const [EntityRef];
 
-    @override
-    final String wireName = r'EntityRef';
+  @override
+  final String wireName = r'EntityRef';
 
-    Iterable<Object?> _serializeProperties(Serializers serializers, EntityRef object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atReferredType != null) {
-            yield r'@referredType';
-            yield serializers.serialize(object.atReferredType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    EntityRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, EntityRef object,
-        {FullType specifiedType = FullType.unspecified}) {
-        if (object is BarRef) {
-            return serializers.serialize(object, specifiedType: FullType(BarRef))!;
-        }
-        if (object is FooRef) {
-            return serializers.serialize(object, specifiedType: FullType(FooRef))!;
-        }
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.atReferredType != null) {
+      yield r'@referredType';
+      yield serializers.serialize(
+        object.atReferredType,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
 
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityRefBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@referredType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atReferredType = valueDes;
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+  @override
+  Object serialize(
+    Serializers serializers,
+    EntityRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    if (object is BarRef) {
+      return serializers.serialize(object, specifiedType: FullType(BarRef))!;
     }
-}
-    
-    @override
-    EntityRef deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final discIndex = serializedList.indexOf(EntityRef.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
-        switch (discValue) {
-            case 'BarRef':                
-                return serializers.deserialize(serialized, specifiedType: FullType(BarRef)) as BarRef;
-            case 'FooRef':                
-                return serializers.deserialize(serialized, specifiedType: FullType(FooRef)) as FooRef;
-            default:            
-                return serializers.deserialize(serialized, specifiedType: FullType($EntityRef)) as $EntityRef;
-        }
+    if (object is FooRef) {
+      return serializers.serialize(object, specifiedType: FullType(FooRef))!;
     }
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  EntityRef deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf(EntityRef.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    switch (discValue) {
+      case 'BarRef':
+        return serializers.deserialize(serialized, specifiedType: FullType(BarRef)) as BarRef;
+      case 'FooRef':
+        return serializers.deserialize(serialized, specifiedType: FullType(FooRef)) as FooRef;
+      default:
+        return serializers.deserialize(serialized, specifiedType: FullType($EntityRef)) as $EntityRef;
+    }
+  }
 }
 
-/// a concrete implmentation of [EntityRef], since [EntityRef] is not instantiable
+/// a concrete implementation of [EntityRef], since [EntityRef] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $EntityRef implements EntityRef, Built<$EntityRef, $EntityRefBuilder> {
   $EntityRef._();
@@ -181,84 +147,114 @@ abstract class $EntityRef implements EntityRef, Built<$EntityRef, $EntityRefBuil
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($EntityRefBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$EntityRef> get serializer => _$$EntityRefSerializer();
 }
 
 class _$$EntityRefSerializer implements PrimitiveSerializer<$EntityRef> {
-    @override
-    final Iterable<Type> types = const [$EntityRef, _$$EntityRef];
-
-    @override
-    final String wireName = r'$EntityRef';
+  @override
+  final Iterable<Type> types = const [$EntityRef, _$$EntityRef];
 
+  @override
+  final String wireName = r'$EntityRef';
 
+  @override
+  Object serialize(
+    Serializers serializers,
+    $EntityRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(EntityRef))!;
+  }
 
-    @override
-    Object serialize(Serializers serializers, $EntityRef object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(EntityRef))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EntityRefBuilder result, required List<Object?> unhandled}) {
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required EntityRefBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@referredType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atReferredType = valueDes;
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@referredType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atReferredType = valueDes;
+          break;
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
-}
-    
-    @override
-    $EntityRef deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $EntityRefBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
-    }
-}
-
+  }
 
+  @override
+  $EntityRef deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $EntityRefBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
+}
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
index af2af4c4a58..49bff51b783 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'extensible.g.dart';
 
@@ -18,94 +15,75 @@ part 'extensible.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue(instantiable: false)
 abstract class Extensible  {
-    /// A URI to a JSON-Schema file that defines additional attributes and relationships
-    @BuiltValueField(wireName: r'@schemaLocation')
-    String? get atSchemaLocation;
-    /// When sub-classing, this defines the super-class
-    @BuiltValueField(wireName: r'@baseType')
-    String? get atBaseType;
-    /// When sub-classing, this defines the sub-class Extensible name
-    @BuiltValueField(wireName: r'@type')
-    String get atType;
+  /// A URI to a JSON-Schema file that defines additional attributes and relationships
+  @BuiltValueField(wireName: r'@schemaLocation')
+  String? get atSchemaLocation;
 
+  /// When sub-classing, this defines the super-class
+  @BuiltValueField(wireName: r'@baseType')
+  String? get atBaseType;
 
+  /// When sub-classing, this defines the sub-class Extensible name
+  @BuiltValueField(wireName: r'@type')
+  String get atType;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ExtensibleBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Extensible> get serializer => _$ExtensibleSerializer();
-
-
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Extensible> get serializer => _$ExtensibleSerializer();
 }
 
 class _$ExtensibleSerializer implements PrimitiveSerializer<Extensible> {
-    @override
-    final Iterable<Type> types = const [Extensible];
-
-    @override
-    final String wireName = r'Extensible';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Extensible object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [Extensible];
+
+  @override
+  final String wireName = r'Extensible';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Extensible object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Extensible object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ExtensibleBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Extensible deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        return serializers.deserialize(serialized, specifiedType: FullType($Extensible)) as $Extensible;
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Extensible object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  Extensible deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.deserialize(serialized, specifiedType: FullType($Extensible)) as $Extensible;
+  }
 }
 
-/// a concrete implmentation of [Extensible], since [Extensible] is not instantiable
+/// a concrete implementation of [Extensible], since [Extensible] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $Extensible implements Extensible, Built<$Extensible, $ExtensibleBuilder> {
   $Extensible._();
@@ -114,64 +92,86 @@ abstract class $Extensible implements Extensible, Built<$Extensible, $Extensible
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($ExtensibleBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$Extensible> get serializer => _$$ExtensibleSerializer();
 }
 
 class _$$ExtensibleSerializer implements PrimitiveSerializer<$Extensible> {
-    @override
-    final Iterable<Type> types = const [$Extensible, _$$Extensible];
-
-    @override
-    final String wireName = r'$Extensible';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $Extensible object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(Extensible))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ExtensibleBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$Extensible, _$$Extensible];
+
+  @override
+  final String wireName = r'$Extensible';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $Extensible object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(Extensible))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ExtensibleBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    $Extensible deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $ExtensibleBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $Extensible deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $ExtensibleBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
index 8df2c2ce4de..c8986b5d524 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'foo.g.dart';
 
@@ -23,136 +20,182 @@ part 'foo.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class Foo implements Entity, Built<Foo, FooBuilder> {
-    @BuiltValueField(wireName: r'fooPropA')
-    String? get fooPropA;
-    @BuiltValueField(wireName: r'fooPropB')
-    String? get fooPropB;
+  @BuiltValueField(wireName: r'fooPropA')
+  String? get fooPropA;
 
+  @BuiltValueField(wireName: r'fooPropB')
+  String? get fooPropB;
 
-    static const String discriminatorFieldName = r'atType';
-    Foo._();
-    
-    factory Foo([void updates(FooBuilder b)]) = _$Foo;
+  static const String discriminatorFieldName = r'atType';
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FooBuilder b) => b;
+  Foo._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Foo> get serializer => _$FooSerializer();
+  factory Foo([void updates(FooBuilder b)]) = _$Foo;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FooBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Foo> get serializer => _$FooSerializer();
 }
 
 class _$FooSerializer implements PrimitiveSerializer<Foo> {
-    @override
-    final Iterable<Type> types = const [Foo, _$Foo];
-
-    @override
-    final String wireName = r'Foo';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Foo object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.fooPropA != null) {
-            yield r'fooPropA';
-            yield serializers.serialize(object.fooPropA,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.fooPropB != null) {
-            yield r'fooPropB';
-            yield serializers.serialize(object.fooPropB,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [Foo, _$Foo];
+
+  @override
+  final String wireName = r'Foo';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Foo object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Foo object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.fooPropA != null) {
+      yield r'fooPropA';
+      yield serializers.serialize(
+        object.fooPropA,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'fooPropA':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.fooPropA = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'fooPropB':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.fooPropB = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    Foo deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FooBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.fooPropB != null) {
+      yield r'fooPropB';
+      yield serializers.serialize(
+        object.fooPropB,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
     }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Foo object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FooBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'fooPropA':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.fooPropA = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'fooPropB':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.fooPropB = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  Foo deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FooBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
index b3de8388346..eff49bd2fd7 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/entity_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'foo_ref.g.dart';
 
@@ -22,144 +19,193 @@ part 'foo_ref.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class FooRef implements EntityRef, Built<FooRef, FooRefBuilder> {
-    @BuiltValueField(wireName: r'foorefPropA')
-    String? get foorefPropA;
+  @BuiltValueField(wireName: r'foorefPropA')
+  String? get foorefPropA;
 
+  static const String discriminatorFieldName = r'atType';
 
-    static const String discriminatorFieldName = r'atType';
-    FooRef._();
-    
-    factory FooRef([void updates(FooRefBuilder b)]) = _$FooRef;
+  FooRef._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FooRefBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<FooRef> get serializer => _$FooRefSerializer();
+  factory FooRef([void updates(FooRefBuilder b)]) = _$FooRef;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FooRefBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<FooRef> get serializer => _$FooRefSerializer();
 }
 
 class _$FooRefSerializer implements PrimitiveSerializer<FooRef> {
-    @override
-    final Iterable<Type> types = const [FooRef, _$FooRef];
-
-    @override
-    final String wireName = r'FooRef';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, FooRef object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atReferredType != null) {
-            yield r'@referredType';
-            yield serializers.serialize(object.atReferredType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.foorefPropA != null) {
-            yield r'foorefPropA';
-            yield serializers.serialize(object.foorefPropA,
-                    specifiedType: const FullType(String));
-        }
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [FooRef, _$FooRef];
+
+  @override
+  final String wireName = r'FooRef';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    FooRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, FooRef object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.atReferredType != null) {
+      yield r'@referredType';
+      yield serializers.serialize(
+        object.atReferredType,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooRefBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@referredType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atReferredType = valueDes;
-                break;
-                case r'foorefPropA':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.foorefPropA = valueDes;
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.foorefPropA != null) {
+      yield r'foorefPropA';
+      yield serializers.serialize(
+        object.foorefPropA,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    FooRef deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FooRefBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    FooRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FooRefBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@referredType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atReferredType = valueDes;
+          break;
+        case r'foorefPropA':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.foorefPropA = valueDes;
+          break;
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  FooRef deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FooRefBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
index 4820b7f372e..7ed1bf376f6 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
@@ -7,8 +7,7 @@ import 'package:openapi/src/model/foo_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
+import 'package:one_of/one_of.dart';
 
 part 'foo_ref_or_value.g.dart';
 
@@ -22,79 +21,86 @@ part 'foo_ref_or_value.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class FooRefOrValue implements Built<FooRefOrValue, FooRefOrValueBuilder> {
+  /// One Of [Foo], [FooRef]
+  OneOf get oneOf;
 
-    /// One Of [Foo], [FooRef]
-    OneOf get oneOf;
-
+  static const String discriminatorFieldName = r'atType';
 
-    static const String discriminatorFieldName = r'atType';
-    static const Map<String, Type> discriminatorMapping = {
-        r'Foo': Foo,
-        r'FooRef': FooRef,
-    };
-    
-    FooRefOrValue._();
-    
-    factory FooRefOrValue([void updates(FooRefOrValueBuilder b)]) = _$FooRefOrValue;
+  static const Map<String, Type> discriminatorMapping = {
+    r'Foo': Foo,
+    r'FooRef': FooRef,
+  };
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FooRefOrValueBuilder b) => b;
+  FooRefOrValue._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<FooRefOrValue> get serializer => _$FooRefOrValueSerializer();
+  factory FooRefOrValue([void updates(FooRefOrValueBuilder b)]) = _$FooRefOrValue;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FooRefOrValueBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<FooRefOrValue> get serializer => _$FooRefOrValueSerializer();
 }
 
 class _$FooRefOrValueSerializer implements PrimitiveSerializer<FooRefOrValue> {
-    @override
-    final Iterable<Type> types = const [FooRefOrValue, _$FooRefOrValue];
-
-    @override
-    final String wireName = r'FooRefOrValue';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, FooRefOrValue object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-    }
-
-    @override
-    Object serialize(Serializers serializers, FooRefOrValue object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final oneOf = object.oneOf;
-        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
-    }
-
-
-    
-    @override
-    FooRefOrValue deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FooRefOrValueBuilder();
-        Object? oneOfDataSrc;
-        final serializedList = (serialized as Iterable<Object?>).toList();    
-        final discIndex = serializedList.indexOf(FooRefOrValue.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;    
-        oneOfDataSrc = serialized;
-        final oneOfTypes = [Foo, FooRef, ];
-        Object oneOfResult;
-        Type oneOfType;
-        switch (discValue) {
-            case 'Foo':                
-                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(Foo)) as Foo;
-                oneOfType = Foo;
-                break;
-            case 'FooRef':                
-                oneOfResult = serializers.deserialize(oneOfDataSrc, specifiedType: FullType(FooRef)) as FooRef;
-                oneOfType = FooRef;
-                break;
-            default:      
-                throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
-        }    
-        result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
-        return result.build();
+  @override
+  final Iterable<Type> types = const [FooRefOrValue, _$FooRefOrValue];
+
+  @override
+  final String wireName = r'FooRefOrValue';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    FooRefOrValue object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    FooRefOrValue object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final oneOf = object.oneOf;
+    return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+  }
+
+  @override
+  FooRefOrValue deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FooRefOrValueBuilder();
+    Object? oneOfDataSrc;
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf(FooRefOrValue.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    oneOfDataSrc = serialized;
+    final oneOfTypes = [Foo, FooRef, ];
+    Object oneOfResult;
+    Type oneOfType;
+    switch (discValue) {
+      case 'Foo':
+        oneOfResult = serializers.deserialize(
+          oneOfDataSrc,
+          specifiedType: FullType(Foo).
+        ) as Foo;
+        oneOfType = Foo;
+        break;
+      case 'FooRef':
+        oneOfResult = serializers.deserialize(
+          oneOfDataSrc,
+          specifiedType: FullType(FooRef).
+        ) as FooRef;
+        oneOfType = FooRef;
+        break;
+      default:
+        throw UnsupportedError("Couldn't deserialize oneOf for the discriminator value: ${discValue}");
     }
+    result.oneOf = OneOfDynamic(typeIndex: oneOfTypes.indexOf(oneOfType), types: oneOfTypes, value: oneOfResult);
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
index 9f93c21e4e5..4769a57c012 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'pasta.g.dart';
 
@@ -22,124 +19,165 @@ part 'pasta.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class Pasta implements Entity, Built<Pasta, PastaBuilder> {
-    @BuiltValueField(wireName: r'vendor')
-    String? get vendor;
+  @BuiltValueField(wireName: r'vendor')
+  String? get vendor;
 
+  static const String discriminatorFieldName = r'atType';
 
-    static const String discriminatorFieldName = r'atType';
-    Pasta._();
-    
-    factory Pasta([void updates(PastaBuilder b)]) = _$Pasta;
+  Pasta._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(PastaBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Pasta> get serializer => _$PastaSerializer();
+  factory Pasta([void updates(PastaBuilder b)]) = _$Pasta;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(PastaBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Pasta> get serializer => _$PastaSerializer();
 }
 
 class _$PastaSerializer implements PrimitiveSerializer<Pasta> {
-    @override
-    final Iterable<Type> types = const [Pasta, _$Pasta];
-
-    @override
-    final String wireName = r'Pasta';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Pasta object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
-        if (object.vendor != null) {
-            yield r'vendor';
-            yield serializers.serialize(object.vendor,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Pasta, _$Pasta];
+
+  @override
+  final String wireName = r'Pasta';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Pasta object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Pasta object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PastaBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-                case r'vendor':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.vendor = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    Pasta deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = PastaBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
     }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+    if (object.vendor != null) {
+      yield r'vendor';
+      yield serializers.serialize(
+        object.vendor,
+        specifiedType: const FullType(String),
+      );
+    }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Pasta object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required PastaBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        case r'vendor':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.vendor = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  Pasta deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = PastaBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
index e4db8602a5f..1a2028bbfcb 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
@@ -6,9 +6,6 @@ import 'package:openapi/src/model/pizza_speziale.dart';
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'pizza.g.dart';
 
@@ -23,133 +20,104 @@ part 'pizza.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue(instantiable: false)
 abstract class Pizza implements Entity {
-    @BuiltValueField(wireName: r'pizzaSize')
-    num? get pizzaSize;
+  @BuiltValueField(wireName: r'pizzaSize')
+  num? get pizzaSize;
 
+  static const String discriminatorFieldName = r'atType';
 
-    static const String discriminatorFieldName = r'atType';
-    static const Map<String, Type> discriminatorMapping = {
-        r'PizzaSpeziale': PizzaSpeziale,
-    };
-    
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(PizzaBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Pizza> get serializer => _$PizzaSerializer();
-
+  static const Map<String, Type> discriminatorMapping = {
+    r'PizzaSpeziale': PizzaSpeziale,
+  };
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Pizza> get serializer => _$PizzaSerializer();
 }
 
 class _$PizzaSerializer implements PrimitiveSerializer<Pizza> {
-    @override
-    final Iterable<Type> types = const [Pizza];
-
-    @override
-    final String wireName = r'Pizza';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Pizza object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.pizzaSize != null) {
-            yield r'pizzaSize';
-            yield serializers.serialize(object.pizzaSize,
-                    specifiedType: const FullType(num));
-        }
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [Pizza];
+
+  @override
+  final String wireName = r'Pizza';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Pizza object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.pizzaSize != null) {
+      yield r'pizzaSize';
+      yield serializers.serialize(
+        object.pizzaSize,
+        specifiedType: const FullType(num),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Pizza object,
-        {FullType specifiedType = FullType.unspecified}) {
-        if (object is PizzaSpeziale) {
-            return serializers.serialize(object, specifiedType: FullType(PizzaSpeziale))!;
-        }
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'pizzaSize':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.pizzaSize = valueDes;
-                break;
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    Pizza deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final discIndex = serializedList.indexOf(Pizza.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
-        switch (discValue) {
-            case 'PizzaSpeziale':                
-                return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
-            default:            
-                return serializers.deserialize(serialized, specifiedType: FullType($Pizza)) as $Pizza;
-        }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Pizza object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    if (object is PizzaSpeziale) {
+      return serializers.serialize(object, specifiedType: FullType(PizzaSpeziale))!;
+    }
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  Pizza deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf(Pizza.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    switch (discValue) {
+      case 'PizzaSpeziale':
+        return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
+      default:
+        return serializers.deserialize(serialized, specifiedType: FullType($Pizza)) as $Pizza;
     }
+  }
 }
 
-/// a concrete implmentation of [Pizza], since [Pizza] is not instantiable
+/// a concrete implementation of [Pizza], since [Pizza] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $Pizza implements Pizza, Built<$Pizza, $PizzaBuilder> {
   $Pizza._();
@@ -158,79 +126,107 @@ abstract class $Pizza implements Pizza, Built<$Pizza, $PizzaBuilder> {
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($PizzaBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$Pizza> get serializer => _$$PizzaSerializer();
 }
 
 class _$$PizzaSerializer implements PrimitiveSerializer<$Pizza> {
-    @override
-    final Iterable<Type> types = const [$Pizza, _$$Pizza];
-
-    @override
-    final String wireName = r'$Pizza';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $Pizza object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(Pizza))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$Pizza, _$$Pizza];
+
+  @override
+  final String wireName = r'$Pizza';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $Pizza object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(Pizza))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required PizzaBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'pizzaSize':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.pizzaSize = valueDes;
-                break;
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    $Pizza deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $PizzaBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'pizzaSize':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.pizzaSize = valueDes;
+          break;
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $Pizza deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $PizzaBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
index b751eb628fc..492cf83beac 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/pizza.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'pizza_speziale.g.dart';
 
@@ -22,134 +19,179 @@ part 'pizza_speziale.g.dart';
 /// * [atType] - When sub-classing, this defines the sub-class Extensible name
 @BuiltValue()
 abstract class PizzaSpeziale implements Pizza, Built<PizzaSpeziale, PizzaSpezialeBuilder> {
-    @BuiltValueField(wireName: r'toppings')
-    String? get toppings;
+  @BuiltValueField(wireName: r'toppings')
+  String? get toppings;
 
+  static const String discriminatorFieldName = r'atType';
 
-    static const String discriminatorFieldName = r'atType';
-    PizzaSpeziale._();
-    
-    factory PizzaSpeziale([void updates(PizzaSpezialeBuilder b)]) = _$PizzaSpeziale;
+  PizzaSpeziale._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(PizzaSpezialeBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<PizzaSpeziale> get serializer => _$PizzaSpezialeSerializer();
+  factory PizzaSpeziale([void updates(PizzaSpezialeBuilder b)]) = _$PizzaSpeziale;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(PizzaSpezialeBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<PizzaSpeziale> get serializer => _$PizzaSpezialeSerializer();
 }
 
 class _$PizzaSpezialeSerializer implements PrimitiveSerializer<PizzaSpeziale> {
-    @override
-    final Iterable<Type> types = const [PizzaSpeziale, _$PizzaSpeziale];
-
-    @override
-    final String wireName = r'PizzaSpeziale';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, PizzaSpeziale object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.atSchemaLocation != null) {
-            yield r'@schemaLocation';
-            yield serializers.serialize(object.atSchemaLocation,
-                    specifiedType: const FullType(String));
-        }
-        if (object.pizzaSize != null) {
-            yield r'pizzaSize';
-            yield serializers.serialize(object.pizzaSize,
-                    specifiedType: const FullType(num));
-        }
-        if (object.toppings != null) {
-            yield r'toppings';
-            yield serializers.serialize(object.toppings,
-                    specifiedType: const FullType(String));
-        }
-        if (object.atBaseType != null) {
-            yield r'@baseType';
-            yield serializers.serialize(object.atBaseType,
-                    specifiedType: const FullType(String));
-        }
-        if (object.href != null) {
-            yield r'href';
-            yield serializers.serialize(object.href,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(String));
-        }
-        yield r'@type';
-        yield serializers.serialize(object.atType,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [PizzaSpeziale, _$PizzaSpeziale];
+
+  @override
+  final String wireName = r'PizzaSpeziale';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    PizzaSpeziale object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.atSchemaLocation != null) {
+      yield r'@schemaLocation';
+      yield serializers.serialize(
+        object.atSchemaLocation,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, PizzaSpeziale object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.pizzaSize != null) {
+      yield r'pizzaSize';
+      yield serializers.serialize(
+        object.pizzaSize,
+        specifiedType: const FullType(num),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PizzaSpezialeBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'@schemaLocation':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atSchemaLocation = valueDes;
-                break;
-                case r'pizzaSize':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.pizzaSize = valueDes;
-                break;
-                case r'toppings':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.toppings = valueDes;
-                break;
-                case r'@baseType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atBaseType = valueDes;
-                break;
-                case r'href':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.href = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.id = valueDes;
-                break;
-                case r'@type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.atType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.toppings != null) {
+      yield r'toppings';
+      yield serializers.serialize(
+        object.toppings,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    PizzaSpeziale deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = PizzaSpezialeBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.atBaseType != null) {
+      yield r'@baseType';
+      yield serializers.serialize(
+        object.atBaseType,
+        specifiedType: const FullType(String),
+      );
     }
+    if (object.href != null) {
+      yield r'href';
+      yield serializers.serialize(
+        object.href,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'@type';
+    yield serializers.serialize(
+      object.atType,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    PizzaSpeziale object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required PizzaSpezialeBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'@schemaLocation':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atSchemaLocation = valueDes;
+          break;
+        case r'pizzaSize':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.pizzaSize = valueDes;
+          break;
+        case r'toppings':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.toppings = valueDes;
+          break;
+        case r'@baseType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atBaseType = valueDes;
+          break;
+        case r'href':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.href = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.id = valueDes;
+          break;
+        case r'@type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.atType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  PizzaSpeziale deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = PizzaSpezialeBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
index a3dd9495899..106f1e45f24 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'child.g.dart';
 
@@ -16,75 +13,95 @@ part 'child.g.dart';
 /// * [name] 
 @BuiltValue()
 abstract class Child implements Built<Child, ChildBuilder> {
-    @BuiltValueField(wireName: r'name')
-    String? get name;
+  @BuiltValueField(wireName: r'name')
+  String? get name;
 
+  Child._();
 
-    Child._();
-    
-    factory Child([void updates(ChildBuilder b)]) = _$Child;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ChildBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Child> get serializer => _$ChildSerializer();
+  factory Child([void updates(ChildBuilder b)]) = _$Child;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ChildBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Child> get serializer => _$ChildSerializer();
 }
 
 class _$ChildSerializer implements PrimitiveSerializer<Child> {
-    @override
-    final Iterable<Type> types = const [Child, _$Child];
-
-    @override
-    final String wireName = r'Child';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Child object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, Child object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [Child, _$Child];
+
+  @override
+  final String wireName = r'Child';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Child object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ChildBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Child object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ChildBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Child deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ChildBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Child deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ChildBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
index eefe40ae295..a89af1282fa 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
@@ -7,8 +7,7 @@ import 'dart:core';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
+import 'package:one_of/one_of.dart';
 
 part 'example.g.dart';
 
@@ -18,56 +17,56 @@ part 'example.g.dart';
 /// * [name] 
 @BuiltValue()
 abstract class Example implements Built<Example, ExampleBuilder> {
+  /// One Of [Child], [int]
+  OneOf get oneOf;
 
-    /// One Of [Child], [int]
-    OneOf get oneOf;
-
-
-    Example._();
-    
-    factory Example([void updates(ExampleBuilder b)]) = _$Example;
+  Example._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ExampleBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Example> get serializer => _$ExampleSerializer();
+  factory Example([void updates(ExampleBuilder b)]) = _$Example;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ExampleBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Example> get serializer => _$ExampleSerializer();
 }
 
 class _$ExampleSerializer implements PrimitiveSerializer<Example> {
-    @override
-    final Iterable<Type> types = const [Example, _$Example];
-
-    @override
-    final String wireName = r'Example';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Example object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-    }
-
-    @override
-    Object serialize(Serializers serializers, Example object,
-        {FullType specifiedType = FullType.unspecified}) {
-        final oneOf = object.oneOf;
-        return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
-    }
-
-
-    
-    @override
-    Example deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ExampleBuilder();
-        Object? oneOfDataSrc;
-        final targetType = const FullType(OneOf, [FullType(Child), FullType(int), ]);
-        oneOfDataSrc = serialized;
-        result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
-        return result.build();
-    }
+  @override
+  final Iterable<Type> types = const [Example, _$Example];
+
+  @override
+  final String wireName = r'Example';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Example object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Example object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final oneOf = object.oneOf;
+    return serializers.serialize(oneOf.value, specifiedType: FullType(oneOf.valueType))!;
+  }
+
+  @override
+  Example deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ExampleBuilder();
+    Object? oneOfDataSrc;
+    final targetType = const FullType(OneOf, [FullType(Child), FullType(int), ]);
+    oneOfDataSrc = serialized;
+    result.oneOf = serializers.deserialize(oneOfDataSrc, specifiedType: targetType) as OneOf;
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index eaa5329b4a7..0ff8fb37bbd 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -5,9 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'additional_properties_class.g.dart';
 
@@ -18,87 +15,112 @@ part 'additional_properties_class.g.dart';
 /// * [mapOfMapProperty] 
 @BuiltValue()
 abstract class AdditionalPropertiesClass implements Built<AdditionalPropertiesClass, AdditionalPropertiesClassBuilder> {
-    @BuiltValueField(wireName: r'map_property')
-    BuiltMap<String, String>? get mapProperty;
-    @BuiltValueField(wireName: r'map_of_map_property')
-    BuiltMap<String, BuiltMap<String, String>>? get mapOfMapProperty;
+  @BuiltValueField(wireName: r'map_property')
+  BuiltMap<String, String>? get mapProperty;
 
+  @BuiltValueField(wireName: r'map_of_map_property')
+  BuiltMap<String, BuiltMap<String, String>>? get mapOfMapProperty;
 
-    AdditionalPropertiesClass._();
-    
-    factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
+  AdditionalPropertiesClass._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(AdditionalPropertiesClassBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
+  factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(AdditionalPropertiesClassBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<AdditionalPropertiesClass> get serializer => _$AdditionalPropertiesClassSerializer();
 }
 
 class _$AdditionalPropertiesClassSerializer implements PrimitiveSerializer<AdditionalPropertiesClass> {
-    @override
-    final Iterable<Type> types = const [AdditionalPropertiesClass, _$AdditionalPropertiesClass];
-
-    @override
-    final String wireName = r'AdditionalPropertiesClass';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, AdditionalPropertiesClass object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.mapProperty != null) {
-            yield r'map_property';
-            yield serializers.serialize(object.mapProperty,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)]));
-        }
-        if (object.mapOfMapProperty != null) {
-            yield r'map_of_map_property';
-            yield serializers.serialize(object.mapOfMapProperty,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]));
-        }
+  @override
+  final Iterable<Type> types = const [AdditionalPropertiesClass, _$AdditionalPropertiesClass];
+
+  @override
+  final String wireName = r'AdditionalPropertiesClass';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    AdditionalPropertiesClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.mapProperty != null) {
+      yield r'map_property';
+      yield serializers.serialize(
+        object.mapProperty,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)]),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, AdditionalPropertiesClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.mapOfMapProperty != null) {
+      yield r'map_of_map_property';
+      yield serializers.serialize(
+        object.mapOfMapProperty,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    AdditionalPropertiesClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required AdditionalPropertiesClassBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'map_property':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])) as BuiltMap<String, String>;
-                result.mapProperty.replace(valueDes);
-                break;
-                case r'map_of_map_property':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
-                result.mapOfMapProperty.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'map_property':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)]),
+          ) as BuiltMap<String, String>;
+          result.mapProperty.replace(valueDes);
+          break;
+        case r'map_of_map_property':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]),
+          ) as BuiltMap<String, BuiltMap<String, String>>;
+          result.mapOfMapProperty.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  AdditionalPropertiesClass deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = AdditionalPropertiesClassBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    AdditionalPropertiesClass deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = AdditionalPropertiesClassBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index 1d92c605a11..a278b039b66 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/single_ref_type.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'all_of_with_single_ref.g.dart';
 
@@ -18,87 +15,112 @@ part 'all_of_with_single_ref.g.dart';
 /// * [singleRefType] 
 @BuiltValue()
 abstract class AllOfWithSingleRef implements Built<AllOfWithSingleRef, AllOfWithSingleRefBuilder> {
-    @BuiltValueField(wireName: r'username')
-    String? get username;
-    @BuiltValueField(wireName: r'SingleRefType')
-    SingleRefType? get singleRefType;
+  @BuiltValueField(wireName: r'username')
+  String? get username;
 
+  @BuiltValueField(wireName: r'SingleRefType')
+  SingleRefType? get singleRefType;
 
-    AllOfWithSingleRef._();
-    
-    factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
+  AllOfWithSingleRef._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(AllOfWithSingleRefBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
+  factory AllOfWithSingleRef([void updates(AllOfWithSingleRefBuilder b)]) = _$AllOfWithSingleRef;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(AllOfWithSingleRefBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<AllOfWithSingleRef> get serializer => _$AllOfWithSingleRefSerializer();
 }
 
 class _$AllOfWithSingleRefSerializer implements PrimitiveSerializer<AllOfWithSingleRef> {
-    @override
-    final Iterable<Type> types = const [AllOfWithSingleRef, _$AllOfWithSingleRef];
-
-    @override
-    final String wireName = r'AllOfWithSingleRef';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, AllOfWithSingleRef object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.username != null) {
-            yield r'username';
-            yield serializers.serialize(object.username,
-                    specifiedType: const FullType(String));
-        }
-        if (object.singleRefType != null) {
-            yield r'SingleRefType';
-            yield serializers.serialize(object.singleRefType,
-                    specifiedType: const FullType(SingleRefType));
-        }
+  @override
+  final Iterable<Type> types = const [AllOfWithSingleRef, _$AllOfWithSingleRef];
+
+  @override
+  final String wireName = r'AllOfWithSingleRef';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    AllOfWithSingleRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.username != null) {
+      yield r'username';
+      yield serializers.serialize(
+        object.username,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, AllOfWithSingleRef object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.singleRefType != null) {
+      yield r'SingleRefType';
+      yield serializers.serialize(
+        object.singleRefType,
+        specifiedType: const FullType(SingleRefType),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AllOfWithSingleRefBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    AllOfWithSingleRef object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required AllOfWithSingleRefBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'username':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.username = valueDes;
-                break;
-                case r'SingleRefType':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(SingleRefType)) as SingleRefType;
-                result.singleRefType = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'username':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.username = valueDes;
+          break;
+        case r'SingleRefType':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(SingleRefType),
+          ) as SingleRefType;
+          result.singleRefType = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  AllOfWithSingleRef deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = AllOfWithSingleRefBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    AllOfWithSingleRef deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = AllOfWithSingleRefBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index 1340ee5dd7f..b5ae9526213 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -6,115 +6,95 @@ import 'package:openapi/src/model/dog.dart';
 import 'package:openapi/src/model/cat.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'animal.g.dart';
 
 /// Animal
 ///
 /// Properties:
-/// * [className] 
-/// * [color] 
+/// * [className]
+/// * [color]
 @BuiltValue(instantiable: false)
-abstract class Animal  {
-    @BuiltValueField(wireName: r'className')
-    String get className;
-    @BuiltValueField(wireName: r'color')
-    String? get color;
+abstract class Animal {
+  @BuiltValueField(wireName: r'className')
+  String get className;
 
+  @BuiltValueField(wireName: r'color')
+  String? get color;
 
-    static const String discriminatorFieldName = r'className';
-    static const Map<String, Type> discriminatorMapping = {
-        r'Cat': Cat,
-        r'Dog': Dog,
-    };
-    
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(AnimalBuilder b) => b
-        ..color = 'red';
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Animal> get serializer => _$AnimalSerializer();
+  static const String discriminatorFieldName = r'className';
 
+  static const Map<String, Type> discriminatorMapping = {
+    r'Cat': Cat,
+    r'Dog': Dog,
+  };
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Animal> get serializer => _$AnimalSerializer();
 }
 
 class _$AnimalSerializer implements PrimitiveSerializer<Animal> {
-    @override
-    final Iterable<Type> types = const [Animal];
-
-    @override
-    final String wireName = r'Animal';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Animal object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        yield r'className';
-        yield serializers.serialize(object.className,
-                specifiedType: const FullType(String));
-        if (object.color != null) {
-            yield r'color';
-            yield serializers.serialize(object.color,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Animal];
+
+  @override
+  final String wireName = r'Animal';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Animal object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    yield r'className';
+    yield serializers.serialize(
+      object.className,
+      specifiedType: const FullType(String),
+    );
+    if (object.color != null) {
+      yield r'color';
+      yield serializers.serialize(
+        object.color,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Animal object,
-        {FullType specifiedType = FullType.unspecified}) {
-        if (object is Cat) {
-            return serializers.serialize(object, specifiedType: FullType(Cat))!;
-        }
-        if (object is Dog) {
-            return serializers.serialize(object, specifiedType: FullType(Dog))!;
-        }
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Animal object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    if (object is Cat) {
+      return serializers.serialize(object, specifiedType: FullType(Cat))!;
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AnimalBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'className':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.className = valueDes;
-                break;
-                case r'color':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.color = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object is Dog) {
+      return serializers.serialize(object, specifiedType: FullType(Dog))!;
     }
-}
-    
-    @override
-    Animal deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final discIndex = serializedList.indexOf(Animal.discriminatorFieldName) + 1;
-        final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
-        switch (discValue) {
-            case 'Cat':                
-                return serializers.deserialize(serialized, specifiedType: FullType(Cat)) as Cat;
-            case 'Dog':                
-                return serializers.deserialize(serialized, specifiedType: FullType(Dog)) as Dog;
-            default:            
-                return serializers.deserialize(serialized, specifiedType: FullType($Animal)) as $Animal;
-        }
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  Animal deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final discIndex = serializedList.indexOf(Animal.discriminatorFieldName) + 1;
+    final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
+    switch (discValue) {
+      case 'Cat':
+        return serializers.deserialize(serialized, specifiedType: FullType(Cat)) as Cat;
+      case 'Dog':
+        return serializers.deserialize(serialized, specifiedType: FullType(Dog)) as Dog;
+      default:
+        return serializers.deserialize(serialized, specifiedType: FullType($Animal)) as $Animal;
     }
+  }
 }
 
-/// a concrete implmentation of [Animal], since [Animal] is not instantiable
+/// a concrete implementation of [Animal], since [Animal] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $Animal implements Animal, Built<$Animal, $AnimalBuilder> {
   $Animal._();
@@ -123,59 +103,78 @@ abstract class $Animal implements Animal, Built<$Animal, $AnimalBuilder> {
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($AnimalBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$Animal> get serializer => _$$AnimalSerializer();
 }
 
 class _$$AnimalSerializer implements PrimitiveSerializer<$Animal> {
-    @override
-    final Iterable<Type> types = const [$Animal, _$$Animal];
-
-    @override
-    final String wireName = r'$Animal';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $Animal object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(Animal))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required AnimalBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$Animal, _$$Animal];
+
+  @override
+  final String wireName = r'$Animal';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $Animal object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(Animal))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required AnimalBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'className':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.className = valueDes;
-                break;
-                case r'color':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.color = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'className':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.className = valueDes;
+          break;
+        case r'color':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.color = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $Animal deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $AnimalBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    $Animal deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $AnimalBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
-    }
-}
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index 5bb16418e13..598c2928baf 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'api_response.g.dart';
 
@@ -18,99 +15,129 @@ part 'api_response.g.dart';
 /// * [message] 
 @BuiltValue()
 abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
-    @BuiltValueField(wireName: r'code')
-    int? get code;
-    @BuiltValueField(wireName: r'type')
-    String? get type;
-    @BuiltValueField(wireName: r'message')
-    String? get message;
+  @BuiltValueField(wireName: r'code')
+  int? get code;
 
+  @BuiltValueField(wireName: r'type')
+  String? get type;
 
-    ApiResponse._();
-    
-    factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
+  @BuiltValueField(wireName: r'message')
+  String? get message;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ApiResponseBuilder b) => b;
+  ApiResponse._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ApiResponse> get serializer => _$ApiResponseSerializer();
+  factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ApiResponseBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ApiResponse> get serializer => _$ApiResponseSerializer();
 }
 
 class _$ApiResponseSerializer implements PrimitiveSerializer<ApiResponse> {
-    @override
-    final Iterable<Type> types = const [ApiResponse, _$ApiResponse];
-
-    @override
-    final String wireName = r'ApiResponse';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ApiResponse object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.code != null) {
-            yield r'code';
-            yield serializers.serialize(object.code,
-                    specifiedType: const FullType(int));
-        }
-        if (object.type != null) {
-            yield r'type';
-            yield serializers.serialize(object.type,
-                    specifiedType: const FullType(String));
-        }
-        if (object.message != null) {
-            yield r'message';
-            yield serializers.serialize(object.message,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [ApiResponse, _$ApiResponse];
+
+  @override
+  final String wireName = r'ApiResponse';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ApiResponse object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.code != null) {
+      yield r'code';
+      yield serializers.serialize(
+        object.code,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, ApiResponse object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.type != null) {
+      yield r'type';
+      yield serializers.serialize(
+        object.type,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ApiResponseBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'code':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.code = valueDes;
-                break;
-                case r'type':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.type = valueDes;
-                break;
-                case r'message':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.message = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.message != null) {
+      yield r'message';
+      yield serializers.serialize(
+        object.message,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    ApiResponse deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ApiResponseBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ApiResponse object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ApiResponseBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'code':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.code = valueDes;
+          break;
+        case r'type':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.type = valueDes;
+          break;
+        case r'message':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.message = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ApiResponse deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ApiResponseBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index ad2829d10ae..45493f05e9a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -5,9 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'array_of_array_of_number_only.g.dart';
 
@@ -17,75 +14,95 @@ part 'array_of_array_of_number_only.g.dart';
 /// * [arrayArrayNumber] 
 @BuiltValue()
 abstract class ArrayOfArrayOfNumberOnly implements Built<ArrayOfArrayOfNumberOnly, ArrayOfArrayOfNumberOnlyBuilder> {
-    @BuiltValueField(wireName: r'ArrayArrayNumber')
-    BuiltList<BuiltList<num>>? get arrayArrayNumber;
+  @BuiltValueField(wireName: r'ArrayArrayNumber')
+  BuiltList<BuiltList<num>>? get arrayArrayNumber;
 
+  ArrayOfArrayOfNumberOnly._();
 
-    ArrayOfArrayOfNumberOnly._();
-    
-    factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ArrayOfArrayOfNumberOnlyBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
+  factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ArrayOfArrayOfNumberOnlyBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ArrayOfArrayOfNumberOnly> get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
 }
 
 class _$ArrayOfArrayOfNumberOnlySerializer implements PrimitiveSerializer<ArrayOfArrayOfNumberOnly> {
-    @override
-    final Iterable<Type> types = const [ArrayOfArrayOfNumberOnly, _$ArrayOfArrayOfNumberOnly];
-
-    @override
-    final String wireName = r'ArrayOfArrayOfNumberOnly';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ArrayOfArrayOfNumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.arrayArrayNumber != null) {
-            yield r'ArrayArrayNumber';
-            yield serializers.serialize(object.arrayArrayNumber,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])]));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ArrayOfArrayOfNumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ArrayOfArrayOfNumberOnly, _$ArrayOfArrayOfNumberOnly];
+
+  @override
+  final String wireName = r'ArrayOfArrayOfNumberOnly';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ArrayOfArrayOfNumberOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.arrayArrayNumber != null) {
+      yield r'ArrayArrayNumber';
+      yield serializers.serialize(
+        object.arrayArrayNumber,
+        specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ArrayOfArrayOfNumberOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ArrayOfArrayOfNumberOnlyBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'ArrayArrayNumber':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])) as BuiltList<BuiltList<num>>;
-                result.arrayArrayNumber.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ArrayOfArrayOfNumberOnly deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ArrayOfArrayOfNumberOnlyBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'ArrayArrayNumber':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])]),
+          ) as BuiltList<BuiltList<num>>;
+          result.arrayArrayNumber.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ArrayOfArrayOfNumberOnly deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ArrayOfArrayOfNumberOnlyBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index 95a8f2ade7d..e82e28d1df2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -5,9 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'array_of_number_only.g.dart';
 
@@ -17,75 +14,95 @@ part 'array_of_number_only.g.dart';
 /// * [arrayNumber] 
 @BuiltValue()
 abstract class ArrayOfNumberOnly implements Built<ArrayOfNumberOnly, ArrayOfNumberOnlyBuilder> {
-    @BuiltValueField(wireName: r'ArrayNumber')
-    BuiltList<num>? get arrayNumber;
+  @BuiltValueField(wireName: r'ArrayNumber')
+  BuiltList<num>? get arrayNumber;
 
+  ArrayOfNumberOnly._();
 
-    ArrayOfNumberOnly._();
-    
-    factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ArrayOfNumberOnlyBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
+  factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ArrayOfNumberOnlyBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ArrayOfNumberOnly> get serializer => _$ArrayOfNumberOnlySerializer();
 }
 
 class _$ArrayOfNumberOnlySerializer implements PrimitiveSerializer<ArrayOfNumberOnly> {
-    @override
-    final Iterable<Type> types = const [ArrayOfNumberOnly, _$ArrayOfNumberOnly];
-
-    @override
-    final String wireName = r'ArrayOfNumberOnly';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ArrayOfNumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.arrayNumber != null) {
-            yield r'ArrayNumber';
-            yield serializers.serialize(object.arrayNumber,
-                    specifiedType: const FullType(BuiltList, [FullType(num)]));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ArrayOfNumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ArrayOfNumberOnly, _$ArrayOfNumberOnly];
+
+  @override
+  final String wireName = r'ArrayOfNumberOnly';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ArrayOfNumberOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.arrayNumber != null) {
+      yield r'ArrayNumber';
+      yield serializers.serialize(
+        object.arrayNumber,
+        specifiedType: const FullType(BuiltList, [FullType(num)]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayOfNumberOnlyBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ArrayOfNumberOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ArrayOfNumberOnlyBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'ArrayNumber':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(num)])) as BuiltList<num>;
-                result.arrayNumber.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ArrayOfNumberOnly deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ArrayOfNumberOnlyBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'ArrayNumber':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(num)]),
+          ) as BuiltList<num>;
+          result.arrayNumber.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ArrayOfNumberOnly deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ArrayOfNumberOnlyBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index 5d5c6bd4193..674c21d9507 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -6,9 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/read_only_first.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'array_test.g.dart';
 
@@ -20,99 +17,129 @@ part 'array_test.g.dart';
 /// * [arrayArrayOfModel] 
 @BuiltValue()
 abstract class ArrayTest implements Built<ArrayTest, ArrayTestBuilder> {
-    @BuiltValueField(wireName: r'array_of_string')
-    BuiltList<String>? get arrayOfString;
-    @BuiltValueField(wireName: r'array_array_of_integer')
-    BuiltList<BuiltList<int>>? get arrayArrayOfInteger;
-    @BuiltValueField(wireName: r'array_array_of_model')
-    BuiltList<BuiltList<ReadOnlyFirst>>? get arrayArrayOfModel;
+  @BuiltValueField(wireName: r'array_of_string')
+  BuiltList<String>? get arrayOfString;
 
+  @BuiltValueField(wireName: r'array_array_of_integer')
+  BuiltList<BuiltList<int>>? get arrayArrayOfInteger;
 
-    ArrayTest._();
-    
-    factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
+  @BuiltValueField(wireName: r'array_array_of_model')
+  BuiltList<BuiltList<ReadOnlyFirst>>? get arrayArrayOfModel;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ArrayTestBuilder b) => b;
+  ArrayTest._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ArrayTest> get serializer => _$ArrayTestSerializer();
+  factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ArrayTestBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ArrayTest> get serializer => _$ArrayTestSerializer();
 }
 
 class _$ArrayTestSerializer implements PrimitiveSerializer<ArrayTest> {
-    @override
-    final Iterable<Type> types = const [ArrayTest, _$ArrayTest];
-
-    @override
-    final String wireName = r'ArrayTest';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ArrayTest object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.arrayOfString != null) {
-            yield r'array_of_string';
-            yield serializers.serialize(object.arrayOfString,
-                    specifiedType: const FullType(BuiltList, [FullType(String)]));
-        }
-        if (object.arrayArrayOfInteger != null) {
-            yield r'array_array_of_integer';
-            yield serializers.serialize(object.arrayArrayOfInteger,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])]));
-        }
-        if (object.arrayArrayOfModel != null) {
-            yield r'array_array_of_model';
-            yield serializers.serialize(object.arrayArrayOfModel,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])]));
-        }
+  @override
+  final Iterable<Type> types = const [ArrayTest, _$ArrayTest];
+
+  @override
+  final String wireName = r'ArrayTest';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ArrayTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.arrayOfString != null) {
+      yield r'array_of_string';
+      yield serializers.serialize(
+        object.arrayOfString,
+        specifiedType: const FullType(BuiltList, [FullType(String)]),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, ArrayTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.arrayArrayOfInteger != null) {
+      yield r'array_array_of_integer';
+      yield serializers.serialize(
+        object.arrayArrayOfInteger,
+        specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ArrayTestBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'array_of_string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
-                result.arrayOfString.replace(valueDes);
-                break;
-                case r'array_array_of_integer':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList<BuiltList<int>>;
-                result.arrayArrayOfInteger.replace(valueDes);
-                break;
-                case r'array_array_of_model':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList<BuiltList<ReadOnlyFirst>>;
-                result.arrayArrayOfModel.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.arrayArrayOfModel != null) {
+      yield r'array_array_of_model';
+      yield serializers.serialize(
+        object.arrayArrayOfModel,
+        specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])]),
+      );
     }
-}
-    
-    @override
-    ArrayTest deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ArrayTestBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ArrayTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ArrayTestBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'array_of_string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(String)]),
+          ) as BuiltList<String>;
+          result.arrayOfString.replace(valueDes);
+          break;
+        case r'array_array_of_integer':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])]),
+          ) as BuiltList<BuiltList<int>>;
+          result.arrayArrayOfInteger.replace(valueDes);
+          break;
+        case r'array_array_of_model':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])]),
+          ) as BuiltList<BuiltList<ReadOnlyFirst>>;
+          result.arrayArrayOfModel.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ArrayTest deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ArrayTestBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index c12d3a6719e..053dde2ef17 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'capitalization.g.dart';
 
@@ -21,136 +18,181 @@ part 'capitalization.g.dart';
 /// * [ATT_NAME] - Name of the pet 
 @BuiltValue()
 abstract class Capitalization implements Built<Capitalization, CapitalizationBuilder> {
-    @BuiltValueField(wireName: r'smallCamel')
-    String? get smallCamel;
-    @BuiltValueField(wireName: r'CapitalCamel')
-    String? get capitalCamel;
-    @BuiltValueField(wireName: r'small_Snake')
-    String? get smallSnake;
-    @BuiltValueField(wireName: r'Capital_Snake')
-    String? get capitalSnake;
-    @BuiltValueField(wireName: r'SCA_ETH_Flow_Points')
-    String? get sCAETHFlowPoints;
-    /// Name of the pet 
-    @BuiltValueField(wireName: r'ATT_NAME')
-    String? get ATT_NAME;
+  @BuiltValueField(wireName: r'smallCamel')
+  String? get smallCamel;
 
+  @BuiltValueField(wireName: r'CapitalCamel')
+  String? get capitalCamel;
 
-    Capitalization._();
-    
-    factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
+  @BuiltValueField(wireName: r'small_Snake')
+  String? get smallSnake;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(CapitalizationBuilder b) => b;
+  @BuiltValueField(wireName: r'Capital_Snake')
+  String? get capitalSnake;
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Capitalization> get serializer => _$CapitalizationSerializer();
+  @BuiltValueField(wireName: r'SCA_ETH_Flow_Points')
+  String? get sCAETHFlowPoints;
 
+  /// Name of the pet 
+  @BuiltValueField(wireName: r'ATT_NAME')
+  String? get ATT_NAME;
 
+  Capitalization._();
+
+  factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(CapitalizationBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Capitalization> get serializer => _$CapitalizationSerializer();
 }
 
 class _$CapitalizationSerializer implements PrimitiveSerializer<Capitalization> {
-    @override
-    final Iterable<Type> types = const [Capitalization, _$Capitalization];
-
-    @override
-    final String wireName = r'Capitalization';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Capitalization object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.smallCamel != null) {
-            yield r'smallCamel';
-            yield serializers.serialize(object.smallCamel,
-                    specifiedType: const FullType(String));
-        }
-        if (object.capitalCamel != null) {
-            yield r'CapitalCamel';
-            yield serializers.serialize(object.capitalCamel,
-                    specifiedType: const FullType(String));
-        }
-        if (object.smallSnake != null) {
-            yield r'small_Snake';
-            yield serializers.serialize(object.smallSnake,
-                    specifiedType: const FullType(String));
-        }
-        if (object.capitalSnake != null) {
-            yield r'Capital_Snake';
-            yield serializers.serialize(object.capitalSnake,
-                    specifiedType: const FullType(String));
-        }
-        if (object.sCAETHFlowPoints != null) {
-            yield r'SCA_ETH_Flow_Points';
-            yield serializers.serialize(object.sCAETHFlowPoints,
-                    specifiedType: const FullType(String));
-        }
-        if (object.ATT_NAME != null) {
-            yield r'ATT_NAME';
-            yield serializers.serialize(object.ATT_NAME,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Capitalization, _$Capitalization];
+
+  @override
+  final String wireName = r'Capitalization';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Capitalization object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.smallCamel != null) {
+      yield r'smallCamel';
+      yield serializers.serialize(
+        object.smallCamel,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Capitalization object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.capitalCamel != null) {
+      yield r'CapitalCamel';
+      yield serializers.serialize(
+        object.capitalCamel,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CapitalizationBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'smallCamel':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.smallCamel = valueDes;
-                break;
-                case r'CapitalCamel':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.capitalCamel = valueDes;
-                break;
-                case r'small_Snake':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.smallSnake = valueDes;
-                break;
-                case r'Capital_Snake':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.capitalSnake = valueDes;
-                break;
-                case r'SCA_ETH_Flow_Points':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.sCAETHFlowPoints = valueDes;
-                break;
-                case r'ATT_NAME':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.ATT_NAME = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.smallSnake != null) {
+      yield r'small_Snake';
+      yield serializers.serialize(
+        object.smallSnake,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    Capitalization deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = CapitalizationBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.capitalSnake != null) {
+      yield r'Capital_Snake';
+      yield serializers.serialize(
+        object.capitalSnake,
+        specifiedType: const FullType(String),
+      );
     }
+    if (object.sCAETHFlowPoints != null) {
+      yield r'SCA_ETH_Flow_Points';
+      yield serializers.serialize(
+        object.sCAETHFlowPoints,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.ATT_NAME != null) {
+      yield r'ATT_NAME';
+      yield serializers.serialize(
+        object.ATT_NAME,
+        specifiedType: const FullType(String),
+      );
+    }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Capitalization object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required CapitalizationBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'smallCamel':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.smallCamel = valueDes;
+          break;
+        case r'CapitalCamel':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.capitalCamel = valueDes;
+          break;
+        case r'small_Snake':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.smallSnake = valueDes;
+          break;
+        case r'Capital_Snake':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.capitalSnake = valueDes;
+          break;
+        case r'SCA_ETH_Flow_Points':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.sCAETHFlowPoints = valueDes;
+          break;
+        case r'ATT_NAME':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.ATT_NAME = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  Capitalization deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = CapitalizationBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 1088cea95da..45f69c1f85d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -6,9 +6,6 @@ import 'package:openapi/src/model/animal.dart';
 import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'cat.g.dart';
 
@@ -20,93 +17,121 @@ part 'cat.g.dart';
 /// * [declawed] 
 @BuiltValue()
 abstract class Cat implements Animal, CatAllOf, Built<Cat, CatBuilder> {
+  static const String discriminatorFieldName = r'className';
 
+  Cat._();
 
-    static const String discriminatorFieldName = r'className';
-    Cat._();
-    
-    factory Cat([void updates(CatBuilder b)]) = _$Cat;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(CatBuilder b) => b
-        ..color = 'red';
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Cat> get serializer => _$CatSerializer();
+  factory Cat([void updates(CatBuilder b)]) = _$Cat;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(CatBuilder b) => b
+      ..color = 'red';
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Cat> get serializer => _$CatSerializer();
 }
 
 class _$CatSerializer implements PrimitiveSerializer<Cat> {
-    @override
-    final Iterable<Type> types = const [Cat, _$Cat];
-
-    @override
-    final String wireName = r'Cat';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Cat object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        yield r'className';
-        yield serializers.serialize(object.className,
-                specifiedType: const FullType(String));
-        if (object.color != null) {
-            yield r'color';
-            yield serializers.serialize(object.color,
-                    specifiedType: const FullType(String));
-        }
-        if (object.declawed != null) {
-            yield r'declawed';
-            yield serializers.serialize(object.declawed,
-                    specifiedType: const FullType(bool));
-        }
+  @override
+  final Iterable<Type> types = const [Cat, _$Cat];
+
+  @override
+  final String wireName = r'Cat';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Cat object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    yield r'className';
+    yield serializers.serialize(
+      object.className,
+      specifiedType: const FullType(String),
+    );
+    if (object.color != null) {
+      yield r'color';
+      yield serializers.serialize(
+        object.color,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Cat object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.declawed != null) {
+      yield r'declawed';
+      yield serializers.serialize(
+        object.declawed,
+        specifiedType: const FullType(bool),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Cat object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required CatBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'className':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.className = valueDes;
-                break;
-                case r'color':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.color = valueDes;
-                break;
-                case r'declawed':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(bool)) as bool;
-                result.declawed = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'className':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.className = valueDes;
+          break;
+        case r'color':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.color = valueDes;
+          break;
+        case r'declawed':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(bool),
+          ) as bool;
+          result.declawed = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Cat deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = CatBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    Cat deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = CatBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index 28f9f5ff026..43b6e6b37ad 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'cat_all_of.g.dart';
 
@@ -16,69 +13,54 @@ part 'cat_all_of.g.dart';
 /// * [declawed] 
 @BuiltValue(instantiable: false)
 abstract class CatAllOf  {
-    @BuiltValueField(wireName: r'declawed')
-    bool? get declawed;
-
-
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(CatAllOfBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<CatAllOf> get serializer => _$CatAllOfSerializer();
-
+  @BuiltValueField(wireName: r'declawed')
+  bool? get declawed;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<CatAllOf> get serializer => _$CatAllOfSerializer();
 }
 
 class _$CatAllOfSerializer implements PrimitiveSerializer<CatAllOf> {
-    @override
-    final Iterable<Type> types = const [CatAllOf];
-
-    @override
-    final String wireName = r'CatAllOf';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, CatAllOf object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.declawed != null) {
-            yield r'declawed';
-            yield serializers.serialize(object.declawed,
-                    specifiedType: const FullType(bool));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, CatAllOf object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatAllOfBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'declawed':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(bool)) as bool;
-                result.declawed = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    CatAllOf deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        return serializers.deserialize(serialized, specifiedType: FullType($CatAllOf)) as $CatAllOf;
+  @override
+  final Iterable<Type> types = const [CatAllOf];
+
+  @override
+  final String wireName = r'CatAllOf';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    CatAllOf object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.declawed != null) {
+      yield r'declawed';
+      yield serializers.serialize(
+        object.declawed,
+        specifiedType: const FullType(bool),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    CatAllOf object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  CatAllOf deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.deserialize(serialized, specifiedType: FullType($CatAllOf)) as $CatAllOf;
+  }
 }
 
-/// a concrete implmentation of [CatAllOf], since [CatAllOf] is not instantiable
+/// a concrete implementation of [CatAllOf], since [CatAllOf] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $CatAllOf implements CatAllOf, Built<$CatAllOf, $CatAllOfBuilder> {
   $CatAllOf._();
@@ -87,54 +69,72 @@ abstract class $CatAllOf implements CatAllOf, Built<$CatAllOf, $CatAllOfBuilder>
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($CatAllOfBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$CatAllOf> get serializer => _$$CatAllOfSerializer();
 }
 
 class _$$CatAllOfSerializer implements PrimitiveSerializer<$CatAllOf> {
-    @override
-    final Iterable<Type> types = const [$CatAllOf, _$$CatAllOf];
-
-    @override
-    final String wireName = r'$CatAllOf';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $CatAllOf object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(CatAllOf))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CatAllOfBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$CatAllOf, _$$CatAllOf];
+
+  @override
+  final String wireName = r'$CatAllOf';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $CatAllOf object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(CatAllOf))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required CatAllOfBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'declawed':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(bool)) as bool;
-                result.declawed = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    $CatAllOf deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $CatAllOfBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'declawed':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(bool),
+          ) as bool;
+          result.declawed = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $CatAllOf deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $CatAllOfBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index d76988dcd9e..06f7f7d3c73 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'category.g.dart';
 
@@ -17,86 +14,111 @@ part 'category.g.dart';
 /// * [name] 
 @BuiltValue()
 abstract class Category implements Built<Category, CategoryBuilder> {
-    @BuiltValueField(wireName: r'id')
-    int? get id;
-    @BuiltValueField(wireName: r'name')
-    String get name;
+  @BuiltValueField(wireName: r'id')
+  int? get id;
 
+  @BuiltValueField(wireName: r'name')
+  String get name;
 
-    Category._();
-    
-    factory Category([void updates(CategoryBuilder b)]) = _$Category;
+  Category._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(CategoryBuilder b) => b
-        ..name = 'default-name';
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Category> get serializer => _$CategorySerializer();
+  factory Category([void updates(CategoryBuilder b)]) = _$Category;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(CategoryBuilder b) => b
+      ..name = 'default-name';
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Category> get serializer => _$CategorySerializer();
 }
 
 class _$CategorySerializer implements PrimitiveSerializer<Category> {
-    @override
-    final Iterable<Type> types = const [Category, _$Category];
-
-    @override
-    final String wireName = r'Category';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Category object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(int));
-        }
-        yield r'name';
-        yield serializers.serialize(object.name,
-                specifiedType: const FullType(String));
+  @override
+  final Iterable<Type> types = const [Category, _$Category];
+
+  @override
+  final String wireName = r'Category';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Category object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Category object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required CategoryBuilder result, required List<Object?> unhandled}) {
+    yield r'name';
+    yield serializers.serialize(
+      object.name,
+      specifiedType: const FullType(String),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Category object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required CategoryBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.id = valueDes;
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.id = valueDes;
+          break;
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Category deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = CategoryBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    Category deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = CategoryBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index 8788650fb33..3e239c512b3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'class_model.g.dart';
 
@@ -16,75 +13,95 @@ part 'class_model.g.dart';
 /// * [classField] 
 @BuiltValue()
 abstract class ClassModel implements Built<ClassModel, ClassModelBuilder> {
-    @BuiltValueField(wireName: r'_class')
-    String? get classField;
+  @BuiltValueField(wireName: r'_class')
+  String? get classField;
 
+  ClassModel._();
 
-    ClassModel._();
-    
-    factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ClassModelBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
+  factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ClassModelBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ClassModel> get serializer => _$ClassModelSerializer();
 }
 
 class _$ClassModelSerializer implements PrimitiveSerializer<ClassModel> {
-    @override
-    final Iterable<Type> types = const [ClassModel, _$ClassModel];
-
-    @override
-    final String wireName = r'ClassModel';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ClassModel object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.classField != null) {
-            yield r'_class';
-            yield serializers.serialize(object.classField,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ClassModel object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ClassModel, _$ClassModel];
+
+  @override
+  final String wireName = r'ClassModel';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ClassModel object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.classField != null) {
+      yield r'_class';
+      yield serializers.serialize(
+        object.classField,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ClassModelBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ClassModel object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ClassModelBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'_class':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.classField = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ClassModel deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ClassModelBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'_class':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.classField = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ClassModel deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ClassModelBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index b77e9d9b5ae..832e3bbc7e5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'deprecated_object.g.dart';
 
@@ -16,75 +13,95 @@ part 'deprecated_object.g.dart';
 /// * [name] 
 @BuiltValue()
 abstract class DeprecatedObject implements Built<DeprecatedObject, DeprecatedObjectBuilder> {
-    @BuiltValueField(wireName: r'name')
-    String? get name;
+  @BuiltValueField(wireName: r'name')
+  String? get name;
 
+  DeprecatedObject._();
 
-    DeprecatedObject._();
-    
-    factory DeprecatedObject([void updates(DeprecatedObjectBuilder b)]) = _$DeprecatedObject;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(DeprecatedObjectBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
+  factory DeprecatedObject([void updates(DeprecatedObjectBuilder b)]) = _$DeprecatedObject;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(DeprecatedObjectBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<DeprecatedObject> get serializer => _$DeprecatedObjectSerializer();
 }
 
 class _$DeprecatedObjectSerializer implements PrimitiveSerializer<DeprecatedObject> {
-    @override
-    final Iterable<Type> types = const [DeprecatedObject, _$DeprecatedObject];
-
-    @override
-    final String wireName = r'DeprecatedObject';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, DeprecatedObject object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, DeprecatedObject object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [DeprecatedObject, _$DeprecatedObject];
+
+  @override
+  final String wireName = r'DeprecatedObject';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    DeprecatedObject object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DeprecatedObjectBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    DeprecatedObject object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required DeprecatedObjectBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    DeprecatedObject deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = DeprecatedObjectBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  DeprecatedObject deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = DeprecatedObjectBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 249ea11465c..70224053840 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -6,9 +6,6 @@ import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'dog.g.dart';
 
@@ -20,93 +17,121 @@ part 'dog.g.dart';
 /// * [breed] 
 @BuiltValue()
 abstract class Dog implements Animal, DogAllOf, Built<Dog, DogBuilder> {
+  static const String discriminatorFieldName = r'className';
 
+  Dog._();
 
-    static const String discriminatorFieldName = r'className';
-    Dog._();
-    
-    factory Dog([void updates(DogBuilder b)]) = _$Dog;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(DogBuilder b) => b
-        ..color = 'red';
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Dog> get serializer => _$DogSerializer();
+  factory Dog([void updates(DogBuilder b)]) = _$Dog;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(DogBuilder b) => b
+      ..color = 'red';
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Dog> get serializer => _$DogSerializer();
 }
 
 class _$DogSerializer implements PrimitiveSerializer<Dog> {
-    @override
-    final Iterable<Type> types = const [Dog, _$Dog];
-
-    @override
-    final String wireName = r'Dog';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Dog object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        yield r'className';
-        yield serializers.serialize(object.className,
-                specifiedType: const FullType(String));
-        if (object.color != null) {
-            yield r'color';
-            yield serializers.serialize(object.color,
-                    specifiedType: const FullType(String));
-        }
-        if (object.breed != null) {
-            yield r'breed';
-            yield serializers.serialize(object.breed,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Dog, _$Dog];
+
+  @override
+  final String wireName = r'Dog';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Dog object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    yield r'className';
+    yield serializers.serialize(
+      object.className,
+      specifiedType: const FullType(String),
+    );
+    if (object.color != null) {
+      yield r'color';
+      yield serializers.serialize(
+        object.color,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Dog object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.breed != null) {
+      yield r'breed';
+      yield serializers.serialize(
+        object.breed,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Dog object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required DogBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'className':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.className = valueDes;
-                break;
-                case r'color':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.color = valueDes;
-                break;
-                case r'breed':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.breed = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'className':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.className = valueDes;
+          break;
+        case r'color':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.color = valueDes;
+          break;
+        case r'breed':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.breed = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Dog deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = DogBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    Dog deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = DogBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index b0fb7b27d3c..798329de2a6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'dog_all_of.g.dart';
 
@@ -16,69 +13,54 @@ part 'dog_all_of.g.dart';
 /// * [breed] 
 @BuiltValue(instantiable: false)
 abstract class DogAllOf  {
-    @BuiltValueField(wireName: r'breed')
-    String? get breed;
-
-
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(DogAllOfBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<DogAllOf> get serializer => _$DogAllOfSerializer();
-
+  @BuiltValueField(wireName: r'breed')
+  String? get breed;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<DogAllOf> get serializer => _$DogAllOfSerializer();
 }
 
 class _$DogAllOfSerializer implements PrimitiveSerializer<DogAllOf> {
-    @override
-    final Iterable<Type> types = const [DogAllOf];
-
-    @override
-    final String wireName = r'DogAllOf';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, DogAllOf object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.breed != null) {
-            yield r'breed';
-            yield serializers.serialize(object.breed,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, DogAllOf object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogAllOfBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'breed':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.breed = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    DogAllOf deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        return serializers.deserialize(serialized, specifiedType: FullType($DogAllOf)) as $DogAllOf;
+  @override
+  final Iterable<Type> types = const [DogAllOf];
+
+  @override
+  final String wireName = r'DogAllOf';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    DogAllOf object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.breed != null) {
+      yield r'breed';
+      yield serializers.serialize(
+        object.breed,
+        specifiedType: const FullType(String),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    DogAllOf object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  @override
+  DogAllOf deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.deserialize(serialized, specifiedType: FullType($DogAllOf)) as $DogAllOf;
+  }
 }
 
-/// a concrete implmentation of [DogAllOf], since [DogAllOf] is not instantiable
+/// a concrete implementation of [DogAllOf], since [DogAllOf] is not instantiable
 @BuiltValue(instantiable: true)
 abstract class $DogAllOf implements DogAllOf, Built<$DogAllOf, $DogAllOfBuilder> {
   $DogAllOf._();
@@ -87,54 +69,72 @@ abstract class $DogAllOf implements DogAllOf, Built<$DogAllOf, $DogAllOfBuilder>
 
   @BuiltValueHook(initializeBuilder: true)
   static void _defaults($DogAllOfBuilder b) => b;
+
   @BuiltValueSerializer(custom: true)
   static Serializer<$DogAllOf> get serializer => _$$DogAllOfSerializer();
 }
 
 class _$$DogAllOfSerializer implements PrimitiveSerializer<$DogAllOf> {
-    @override
-    final Iterable<Type> types = const [$DogAllOf, _$$DogAllOf];
-
-    @override
-    final String wireName = r'$DogAllOf';
-
-
-
-    @override
-    Object serialize(Serializers serializers, $DogAllOf object,
-        {FullType specifiedType = FullType.unspecified}) {        
-        return serializers.serialize(object, specifiedType: FullType(DogAllOf))!;
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required DogAllOfBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [$DogAllOf, _$$DogAllOf];
+
+  @override
+  final String wireName = r'$DogAllOf';
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    $DogAllOf object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return serializers.serialize(object, specifiedType: FullType(DogAllOf))!;
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required DogAllOfBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'breed':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.breed = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    $DogAllOf deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = $DogAllOfBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);
-        return result.build();        
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'breed':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.breed = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  $DogAllOf deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = $DogAllOfBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index 89d851870c3..4f62ed49fdc 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -5,9 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'enum_arrays.g.dart';
 
@@ -18,91 +15,117 @@ part 'enum_arrays.g.dart';
 /// * [arrayEnum] 
 @BuiltValue()
 abstract class EnumArrays implements Built<EnumArrays, EnumArraysBuilder> {
-    @BuiltValueField(wireName: r'just_symbol')
-    EnumArraysJustSymbolEnum? get justSymbol;
-    // enum justSymbolEnum {  >=,  $,  };
-    @BuiltValueField(wireName: r'array_enum')
-    BuiltList<EnumArraysArrayEnumEnum>? get arrayEnum;
-    // enum arrayEnumEnum {  fish,  crab,  };
+  @BuiltValueField(wireName: r'just_symbol')
+  EnumArraysJustSymbolEnum? get justSymbol;
+  // enum justSymbolEnum {  >=,  $,  };
 
+  @BuiltValueField(wireName: r'array_enum')
+  BuiltList<EnumArraysArrayEnumEnum>? get arrayEnum;
+  // enum arrayEnumEnum {  fish,  crab,  };
 
-    EnumArrays._();
-    
-    factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
+  EnumArrays._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(EnumArraysBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<EnumArrays> get serializer => _$EnumArraysSerializer();
+  factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(EnumArraysBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<EnumArrays> get serializer => _$EnumArraysSerializer();
 }
 
 class _$EnumArraysSerializer implements PrimitiveSerializer<EnumArrays> {
-    @override
-    final Iterable<Type> types = const [EnumArrays, _$EnumArrays];
-
-    @override
-    final String wireName = r'EnumArrays';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, EnumArrays object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.justSymbol != null) {
-            yield r'just_symbol';
-            yield serializers.serialize(object.justSymbol,
-                    specifiedType: const FullType(EnumArraysJustSymbolEnum));
-        }
-        if (object.arrayEnum != null) {
-            yield r'array_enum';
-            yield serializers.serialize(object.arrayEnum,
-                    specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)]));
-        }
+  @override
+  final Iterable<Type> types = const [EnumArrays, _$EnumArrays];
+
+  @override
+  final String wireName = r'EnumArrays';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    EnumArrays object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.justSymbol != null) {
+      yield r'just_symbol';
+      yield serializers.serialize(
+        object.justSymbol,
+        specifiedType: const FullType(EnumArraysJustSymbolEnum),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, EnumArrays object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.arrayEnum != null) {
+      yield r'array_enum';
+      yield serializers.serialize(
+        object.arrayEnum,
+        specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumArraysBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    EnumArrays object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required EnumArraysBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'just_symbol':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(EnumArraysJustSymbolEnum)) as EnumArraysJustSymbolEnum;
-                result.justSymbol = valueDes;
-                break;
-                case r'array_enum':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList<EnumArraysArrayEnumEnum>;
-                result.arrayEnum.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    EnumArrays deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = EnumArraysBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'just_symbol':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(EnumArraysJustSymbolEnum),
+          ) as EnumArraysJustSymbolEnum;
+          result.justSymbol = valueDes;
+          break;
+        case r'array_enum':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)]),
+          ) as BuiltList<EnumArraysArrayEnumEnum>;
+          result.arrayEnum.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  EnumArrays deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = EnumArraysBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
 class EnumArraysJustSymbolEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'>=')
@@ -137,4 +160,3 @@ class EnumArraysArrayEnumEnum extends EnumClass {
   static EnumArraysArrayEnumEnum valueOf(String name) => _$enumArraysArrayEnumEnumValueOf(name);
 }
 
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index 8991f4c07c8..b46e039ae05 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -9,9 +9,6 @@ import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:openapi/src/model/outer_enum_integer_default_value.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'enum_test.g.dart';
 
@@ -28,168 +25,224 @@ part 'enum_test.g.dart';
 /// * [outerEnumIntegerDefaultValue] 
 @BuiltValue()
 abstract class EnumTest implements Built<EnumTest, EnumTestBuilder> {
-    @BuiltValueField(wireName: r'enum_string')
-    EnumTestEnumStringEnum? get enumString;
-    // enum enumStringEnum {  UPPER,  lower,  ,  };
-    @BuiltValueField(wireName: r'enum_string_required')
-    EnumTestEnumStringRequiredEnum get enumStringRequired;
-    // enum enumStringRequiredEnum {  UPPER,  lower,  ,  };
-    @BuiltValueField(wireName: r'enum_integer')
-    EnumTestEnumIntegerEnum? get enumInteger;
-    // enum enumIntegerEnum {  1,  -1,  };
-    @BuiltValueField(wireName: r'enum_number')
-    EnumTestEnumNumberEnum? get enumNumber;
-    // enum enumNumberEnum {  1.1,  -1.2,  };
-    @BuiltValueField(wireName: r'outerEnum')
-    OuterEnum? get outerEnum;
-    // enum outerEnumEnum {  placed,  approved,  delivered,  };
-    @BuiltValueField(wireName: r'outerEnumInteger')
-    OuterEnumInteger? get outerEnumInteger;
-    // enum outerEnumIntegerEnum {  0,  1,  2,  };
-    @BuiltValueField(wireName: r'outerEnumDefaultValue')
-    OuterEnumDefaultValue? get outerEnumDefaultValue;
-    // enum outerEnumDefaultValueEnum {  placed,  approved,  delivered,  };
-    @BuiltValueField(wireName: r'outerEnumIntegerDefaultValue')
-    OuterEnumIntegerDefaultValue? get outerEnumIntegerDefaultValue;
-    // enum outerEnumIntegerDefaultValueEnum {  0,  1,  2,  };
-
-
-    EnumTest._();
-    
-    factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(EnumTestBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<EnumTest> get serializer => _$EnumTestSerializer();
+  @BuiltValueField(wireName: r'enum_string')
+  EnumTestEnumStringEnum? get enumString;
+  // enum enumStringEnum {  UPPER,  lower,  ,  };
 
+  @BuiltValueField(wireName: r'enum_string_required')
+  EnumTestEnumStringRequiredEnum get enumStringRequired;
+  // enum enumStringRequiredEnum {  UPPER,  lower,  ,  };
 
+  @BuiltValueField(wireName: r'enum_integer')
+  EnumTestEnumIntegerEnum? get enumInteger;
+  // enum enumIntegerEnum {  1,  -1,  };
+
+  @BuiltValueField(wireName: r'enum_number')
+  EnumTestEnumNumberEnum? get enumNumber;
+  // enum enumNumberEnum {  1.1,  -1.2,  };
+
+  @BuiltValueField(wireName: r'outerEnum')
+  OuterEnum? get outerEnum;
+  // enum outerEnumEnum {  placed,  approved,  delivered,  };
+
+  @BuiltValueField(wireName: r'outerEnumInteger')
+  OuterEnumInteger? get outerEnumInteger;
+  // enum outerEnumIntegerEnum {  0,  1,  2,  };
+
+  @BuiltValueField(wireName: r'outerEnumDefaultValue')
+  OuterEnumDefaultValue? get outerEnumDefaultValue;
+  // enum outerEnumDefaultValueEnum {  placed,  approved,  delivered,  };
+
+  @BuiltValueField(wireName: r'outerEnumIntegerDefaultValue')
+  OuterEnumIntegerDefaultValue? get outerEnumIntegerDefaultValue;
+  // enum outerEnumIntegerDefaultValueEnum {  0,  1,  2,  };
+
+  EnumTest._();
+
+  factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(EnumTestBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<EnumTest> get serializer => _$EnumTestSerializer();
 }
 
 class _$EnumTestSerializer implements PrimitiveSerializer<EnumTest> {
-    @override
-    final Iterable<Type> types = const [EnumTest, _$EnumTest];
-
-    @override
-    final String wireName = r'EnumTest';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, EnumTest object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.enumString != null) {
-            yield r'enum_string';
-            yield serializers.serialize(object.enumString,
-                    specifiedType: const FullType(EnumTestEnumStringEnum));
-        }
-        yield r'enum_string_required';
-        yield serializers.serialize(object.enumStringRequired,
-                specifiedType: const FullType(EnumTestEnumStringRequiredEnum));
-        if (object.enumInteger != null) {
-            yield r'enum_integer';
-            yield serializers.serialize(object.enumInteger,
-                    specifiedType: const FullType(EnumTestEnumIntegerEnum));
-        }
-        if (object.enumNumber != null) {
-            yield r'enum_number';
-            yield serializers.serialize(object.enumNumber,
-                    specifiedType: const FullType(EnumTestEnumNumberEnum));
-        }
-        if (object.outerEnum != null) {
-            yield r'outerEnum';
-            yield serializers.serialize(object.outerEnum,
-                    specifiedType: const FullType.nullable(OuterEnum));
-        }
-        if (object.outerEnumInteger != null) {
-            yield r'outerEnumInteger';
-            yield serializers.serialize(object.outerEnumInteger,
-                    specifiedType: const FullType(OuterEnumInteger));
-        }
-        if (object.outerEnumDefaultValue != null) {
-            yield r'outerEnumDefaultValue';
-            yield serializers.serialize(object.outerEnumDefaultValue,
-                    specifiedType: const FullType(OuterEnumDefaultValue));
-        }
-        if (object.outerEnumIntegerDefaultValue != null) {
-            yield r'outerEnumIntegerDefaultValue';
-            yield serializers.serialize(object.outerEnumIntegerDefaultValue,
-                    specifiedType: const FullType(OuterEnumIntegerDefaultValue));
-        }
+  @override
+  final Iterable<Type> types = const [EnumTest, _$EnumTest];
+
+  @override
+  final String wireName = r'EnumTest';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    EnumTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.enumString != null) {
+      yield r'enum_string';
+      yield serializers.serialize(
+        object.enumString,
+        specifiedType: const FullType(EnumTestEnumStringEnum),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, EnumTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    yield r'enum_string_required';
+    yield serializers.serialize(
+      object.enumStringRequired,
+      specifiedType: const FullType(EnumTestEnumStringRequiredEnum),
+    );
+    if (object.enumInteger != null) {
+      yield r'enum_integer';
+      yield serializers.serialize(
+        object.enumInteger,
+        specifiedType: const FullType(EnumTestEnumIntegerEnum),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required EnumTestBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'enum_string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(EnumTestEnumStringEnum)) as EnumTestEnumStringEnum;
-                result.enumString = valueDes;
-                break;
-                case r'enum_string_required':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(EnumTestEnumStringRequiredEnum)) as EnumTestEnumStringRequiredEnum;
-                result.enumStringRequired = valueDes;
-                break;
-                case r'enum_integer':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(EnumTestEnumIntegerEnum)) as EnumTestEnumIntegerEnum;
-                result.enumInteger = valueDes;
-                break;
-                case r'enum_number':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(EnumTestEnumNumberEnum)) as EnumTestEnumNumberEnum;
-                result.enumNumber = valueDes;
-                break;
-                case r'outerEnum':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(OuterEnum)) as OuterEnum?;
-                if (valueDes == null) continue;
-                result.outerEnum = valueDes;
-                break;
-                case r'outerEnumInteger':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
-                result.outerEnumInteger = valueDes;
-                break;
-                case r'outerEnumDefaultValue':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(OuterEnumDefaultValue)) as OuterEnumDefaultValue;
-                result.outerEnumDefaultValue = valueDes;
-                break;
-                case r'outerEnumIntegerDefaultValue':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(OuterEnumIntegerDefaultValue)) as OuterEnumIntegerDefaultValue;
-                result.outerEnumIntegerDefaultValue = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.enumNumber != null) {
+      yield r'enum_number';
+      yield serializers.serialize(
+        object.enumNumber,
+        specifiedType: const FullType(EnumTestEnumNumberEnum),
+      );
     }
-}
-    
-    @override
-    EnumTest deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = EnumTestBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.outerEnum != null) {
+      yield r'outerEnum';
+      yield serializers.serialize(
+        object.outerEnum,
+        specifiedType: const FullType.nullable(OuterEnum),
+      );
+    }
+    if (object.outerEnumInteger != null) {
+      yield r'outerEnumInteger';
+      yield serializers.serialize(
+        object.outerEnumInteger,
+        specifiedType: const FullType(OuterEnumInteger),
+      );
+    }
+    if (object.outerEnumDefaultValue != null) {
+      yield r'outerEnumDefaultValue';
+      yield serializers.serialize(
+        object.outerEnumDefaultValue,
+        specifiedType: const FullType(OuterEnumDefaultValue),
+      );
+    }
+    if (object.outerEnumIntegerDefaultValue != null) {
+      yield r'outerEnumIntegerDefaultValue';
+      yield serializers.serialize(
+        object.outerEnumIntegerDefaultValue,
+        specifiedType: const FullType(OuterEnumIntegerDefaultValue),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    EnumTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required EnumTestBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'enum_string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(EnumTestEnumStringEnum),
+          ) as EnumTestEnumStringEnum;
+          result.enumString = valueDes;
+          break;
+        case r'enum_string_required':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(EnumTestEnumStringRequiredEnum),
+          ) as EnumTestEnumStringRequiredEnum;
+          result.enumStringRequired = valueDes;
+          break;
+        case r'enum_integer':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(EnumTestEnumIntegerEnum),
+          ) as EnumTestEnumIntegerEnum;
+          result.enumInteger = valueDes;
+          break;
+        case r'enum_number':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(EnumTestEnumNumberEnum),
+          ) as EnumTestEnumNumberEnum;
+          result.enumNumber = valueDes;
+          break;
+        case r'outerEnum':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(OuterEnum),
+          ) as OuterEnum?;
+          if (valueDes == null) continue;
+          result.outerEnum = valueDes;
+          break;
+        case r'outerEnumInteger':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(OuterEnumInteger),
+          ) as OuterEnumInteger;
+          result.outerEnumInteger = valueDes;
+          break;
+        case r'outerEnumDefaultValue':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(OuterEnumDefaultValue),
+          ) as OuterEnumDefaultValue;
+          result.outerEnumDefaultValue = valueDes;
+          break;
+        case r'outerEnumIntegerDefaultValue':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(OuterEnumIntegerDefaultValue),
+          ) as OuterEnumIntegerDefaultValue;
+          result.outerEnumIntegerDefaultValue = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  EnumTest deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = EnumTestBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
 class EnumTestEnumStringEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'UPPER')
@@ -262,4 +315,3 @@ class EnumTestEnumNumberEnum extends EnumClass {
   static EnumTestEnumNumberEnum valueOf(String name) => _$enumTestEnumNumberEnumValueOf(name);
 }
 
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index ff8ef64b759..a8928601084 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -6,9 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/model_file.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'file_schema_test_class.g.dart';
 
@@ -19,87 +16,112 @@ part 'file_schema_test_class.g.dart';
 /// * [files] 
 @BuiltValue()
 abstract class FileSchemaTestClass implements Built<FileSchemaTestClass, FileSchemaTestClassBuilder> {
-    @BuiltValueField(wireName: r'file')
-    ModelFile? get file;
-    @BuiltValueField(wireName: r'files')
-    BuiltList<ModelFile>? get files;
+  @BuiltValueField(wireName: r'file')
+  ModelFile? get file;
 
+  @BuiltValueField(wireName: r'files')
+  BuiltList<ModelFile>? get files;
 
-    FileSchemaTestClass._();
-    
-    factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
+  FileSchemaTestClass._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FileSchemaTestClassBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
+  factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FileSchemaTestClassBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<FileSchemaTestClass> get serializer => _$FileSchemaTestClassSerializer();
 }
 
 class _$FileSchemaTestClassSerializer implements PrimitiveSerializer<FileSchemaTestClass> {
-    @override
-    final Iterable<Type> types = const [FileSchemaTestClass, _$FileSchemaTestClass];
-
-    @override
-    final String wireName = r'FileSchemaTestClass';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, FileSchemaTestClass object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.file != null) {
-            yield r'file';
-            yield serializers.serialize(object.file,
-                    specifiedType: const FullType(ModelFile));
-        }
-        if (object.files != null) {
-            yield r'files';
-            yield serializers.serialize(object.files,
-                    specifiedType: const FullType(BuiltList, [FullType(ModelFile)]));
-        }
+  @override
+  final Iterable<Type> types = const [FileSchemaTestClass, _$FileSchemaTestClass];
+
+  @override
+  final String wireName = r'FileSchemaTestClass';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    FileSchemaTestClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.file != null) {
+      yield r'file';
+      yield serializers.serialize(
+        object.file,
+        specifiedType: const FullType(ModelFile),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, FileSchemaTestClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.files != null) {
+      yield r'files';
+      yield serializers.serialize(
+        object.files,
+        specifiedType: const FullType(BuiltList, [FullType(ModelFile)]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FileSchemaTestClassBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    FileSchemaTestClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FileSchemaTestClassBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'file':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(ModelFile)) as ModelFile;
-                result.file.replace(valueDes);
-                break;
-                case r'files':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(ModelFile)])) as BuiltList<ModelFile>;
-                result.files.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'file':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(ModelFile),
+          ) as ModelFile;
+          result.file.replace(valueDes);
+          break;
+        case r'files':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(ModelFile)]),
+          ) as BuiltList<ModelFile>;
+          result.files.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  FileSchemaTestClass deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FileSchemaTestClassBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    FileSchemaTestClass deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FileSchemaTestClassBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index e22471adb11..b48a792d382 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'foo.g.dart';
 
@@ -16,76 +13,96 @@ part 'foo.g.dart';
 /// * [bar] 
 @BuiltValue()
 abstract class Foo implements Built<Foo, FooBuilder> {
-    @BuiltValueField(wireName: r'bar')
-    String? get bar;
+  @BuiltValueField(wireName: r'bar')
+  String? get bar;
 
+  Foo._();
 
-    Foo._();
-    
-    factory Foo([void updates(FooBuilder b)]) = _$Foo;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FooBuilder b) => b
-        ..bar = 'bar';
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Foo> get serializer => _$FooSerializer();
+  factory Foo([void updates(FooBuilder b)]) = _$Foo;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FooBuilder b) => b
+      ..bar = 'bar';
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Foo> get serializer => _$FooSerializer();
 }
 
 class _$FooSerializer implements PrimitiveSerializer<Foo> {
-    @override
-    final Iterable<Type> types = const [Foo, _$Foo];
-
-    @override
-    final String wireName = r'Foo';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Foo object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.bar != null) {
-            yield r'bar';
-            yield serializers.serialize(object.bar,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, Foo object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [Foo, _$Foo];
+
+  @override
+  final String wireName = r'Foo';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Foo object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.bar != null) {
+      yield r'bar';
+      yield serializers.serialize(
+        object.bar,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Foo object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FooBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'bar':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.bar = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    Foo deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FooBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'bar':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.bar = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Foo deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FooBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
index dd05914e6cc..f8000092c45 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/foo.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'foo_get_default_response.g.dart';
 
@@ -17,75 +14,95 @@ part 'foo_get_default_response.g.dart';
 /// * [string] 
 @BuiltValue()
 abstract class FooGetDefaultResponse implements Built<FooGetDefaultResponse, FooGetDefaultResponseBuilder> {
-    @BuiltValueField(wireName: r'string')
-    Foo? get string;
+  @BuiltValueField(wireName: r'string')
+  Foo? get string;
 
+  FooGetDefaultResponse._();
 
-    FooGetDefaultResponse._();
-    
-    factory FooGetDefaultResponse([void updates(FooGetDefaultResponseBuilder b)]) = _$FooGetDefaultResponse;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FooGetDefaultResponseBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<FooGetDefaultResponse> get serializer => _$FooGetDefaultResponseSerializer();
+  factory FooGetDefaultResponse([void updates(FooGetDefaultResponseBuilder b)]) = _$FooGetDefaultResponse;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FooGetDefaultResponseBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<FooGetDefaultResponse> get serializer => _$FooGetDefaultResponseSerializer();
 }
 
 class _$FooGetDefaultResponseSerializer implements PrimitiveSerializer<FooGetDefaultResponse> {
-    @override
-    final Iterable<Type> types = const [FooGetDefaultResponse, _$FooGetDefaultResponse];
-
-    @override
-    final String wireName = r'FooGetDefaultResponse';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, FooGetDefaultResponse object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.string != null) {
-            yield r'string';
-            yield serializers.serialize(object.string,
-                    specifiedType: const FullType(Foo));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, FooGetDefaultResponse object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [FooGetDefaultResponse, _$FooGetDefaultResponse];
+
+  @override
+  final String wireName = r'FooGetDefaultResponse';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    FooGetDefaultResponse object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.string != null) {
+      yield r'string';
+      yield serializers.serialize(
+        object.string,
+        specifiedType: const FullType(Foo),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FooGetDefaultResponseBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    FooGetDefaultResponse object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FooGetDefaultResponseBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(Foo)) as Foo;
-                result.string.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    FooGetDefaultResponse deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FooGetDefaultResponseBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(Foo),
+          ) as Foo;
+          result.string.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  FooGetDefaultResponse deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FooGetDefaultResponseBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index 8fa1e8337e5..fe744a3f10c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -6,9 +6,6 @@ import 'dart:typed_data';
 import 'package:openapi/src/model/date.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'format_test.g.dart';
 
@@ -33,249 +30,344 @@ part 'format_test.g.dart';
 /// * [patternWithDigitsAndDelimiter] - A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
 @BuiltValue()
 abstract class FormatTest implements Built<FormatTest, FormatTestBuilder> {
-    @BuiltValueField(wireName: r'integer')
-    int? get integer;
-    @BuiltValueField(wireName: r'int32')
-    int? get int32;
-    @BuiltValueField(wireName: r'int64')
-    int? get int64;
-    @BuiltValueField(wireName: r'number')
-    num get number;
-    @BuiltValueField(wireName: r'float')
-    double? get float;
-    @BuiltValueField(wireName: r'double')
-    double? get double_;
-    @BuiltValueField(wireName: r'decimal')
-    double? get decimal;
-    @BuiltValueField(wireName: r'string')
-    String? get string;
-    @BuiltValueField(wireName: r'byte')
-    String get byte;
-    @BuiltValueField(wireName: r'binary')
-    Uint8List? get binary;
-    @BuiltValueField(wireName: r'date')
-    Date get date;
-    @BuiltValueField(wireName: r'dateTime')
-    DateTime? get dateTime;
-    @BuiltValueField(wireName: r'uuid')
-    String? get uuid;
-    @BuiltValueField(wireName: r'password')
-    String get password;
-    /// A string that is a 10 digit number. Can have leading zeros.
-    @BuiltValueField(wireName: r'pattern_with_digits')
-    String? get patternWithDigits;
-    /// A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
-    @BuiltValueField(wireName: r'pattern_with_digits_and_delimiter')
-    String? get patternWithDigitsAndDelimiter;
+  @BuiltValueField(wireName: r'integer')
+  int? get integer;
 
+  @BuiltValueField(wireName: r'int32')
+  int? get int32;
 
-    FormatTest._();
-    
-    factory FormatTest([void updates(FormatTestBuilder b)]) = _$FormatTest;
+  @BuiltValueField(wireName: r'int64')
+  int? get int64;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(FormatTestBuilder b) => b;
+  @BuiltValueField(wireName: r'number')
+  num get number;
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<FormatTest> get serializer => _$FormatTestSerializer();
+  @BuiltValueField(wireName: r'float')
+  double? get float;
 
+  @BuiltValueField(wireName: r'double')
+  double? get double_;
 
+  @BuiltValueField(wireName: r'decimal')
+  double? get decimal;
+
+  @BuiltValueField(wireName: r'string')
+  String? get string;
+
+  @BuiltValueField(wireName: r'byte')
+  String get byte;
+
+  @BuiltValueField(wireName: r'binary')
+  Uint8List? get binary;
+
+  @BuiltValueField(wireName: r'date')
+  Date get date;
+
+  @BuiltValueField(wireName: r'dateTime')
+  DateTime? get dateTime;
+
+  @BuiltValueField(wireName: r'uuid')
+  String? get uuid;
+
+  @BuiltValueField(wireName: r'password')
+  String get password;
+
+  /// A string that is a 10 digit number. Can have leading zeros.
+  @BuiltValueField(wireName: r'pattern_with_digits')
+  String? get patternWithDigits;
+
+  /// A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
+  @BuiltValueField(wireName: r'pattern_with_digits_and_delimiter')
+  String? get patternWithDigitsAndDelimiter;
+
+  FormatTest._();
+
+  factory FormatTest([void updates(FormatTestBuilder b)]) = _$FormatTest;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(FormatTestBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<FormatTest> get serializer => _$FormatTestSerializer();
 }
 
 class _$FormatTestSerializer implements PrimitiveSerializer<FormatTest> {
-    @override
-    final Iterable<Type> types = const [FormatTest, _$FormatTest];
+  @override
+  final Iterable<Type> types = const [FormatTest, _$FormatTest];
 
-    @override
-    final String wireName = r'FormatTest';
+  @override
+  final String wireName = r'FormatTest';
 
-    Iterable<Object?> _serializeProperties(Serializers serializers, FormatTest object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.integer != null) {
-            yield r'integer';
-            yield serializers.serialize(object.integer,
-                    specifiedType: const FullType(int));
-        }
-        if (object.int32 != null) {
-            yield r'int32';
-            yield serializers.serialize(object.int32,
-                    specifiedType: const FullType(int));
-        }
-        if (object.int64 != null) {
-            yield r'int64';
-            yield serializers.serialize(object.int64,
-                    specifiedType: const FullType(int));
-        }
-        yield r'number';
-        yield serializers.serialize(object.number,
-                specifiedType: const FullType(num));
-        if (object.float != null) {
-            yield r'float';
-            yield serializers.serialize(object.float,
-                    specifiedType: const FullType(double));
-        }
-        if (object.double_ != null) {
-            yield r'double';
-            yield serializers.serialize(object.double_,
-                    specifiedType: const FullType(double));
-        }
-        if (object.decimal != null) {
-            yield r'decimal';
-            yield serializers.serialize(object.decimal,
-                    specifiedType: const FullType(double));
-        }
-        if (object.string != null) {
-            yield r'string';
-            yield serializers.serialize(object.string,
-                    specifiedType: const FullType(String));
-        }
-        yield r'byte';
-        yield serializers.serialize(object.byte,
-                specifiedType: const FullType(String));
-        if (object.binary != null) {
-            yield r'binary';
-            yield serializers.serialize(object.binary,
-                    specifiedType: const FullType(Uint8List));
-        }
-        yield r'date';
-        yield serializers.serialize(object.date,
-                specifiedType: const FullType(Date));
-        if (object.dateTime != null) {
-            yield r'dateTime';
-            yield serializers.serialize(object.dateTime,
-                    specifiedType: const FullType(DateTime));
-        }
-        if (object.uuid != null) {
-            yield r'uuid';
-            yield serializers.serialize(object.uuid,
-                    specifiedType: const FullType(String));
-        }
-        yield r'password';
-        yield serializers.serialize(object.password,
-                specifiedType: const FullType(String));
-        if (object.patternWithDigits != null) {
-            yield r'pattern_with_digits';
-            yield serializers.serialize(object.patternWithDigits,
-                    specifiedType: const FullType(String));
-        }
-        if (object.patternWithDigitsAndDelimiter != null) {
-            yield r'pattern_with_digits_and_delimiter';
-            yield serializers.serialize(object.patternWithDigitsAndDelimiter,
-                    specifiedType: const FullType(String));
-        }
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    FormatTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.integer != null) {
+      yield r'integer';
+      yield serializers.serialize(
+        object.integer,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, FormatTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.int32 != null) {
+      yield r'int32';
+      yield serializers.serialize(
+        object.int32,
+        specifiedType: const FullType(int),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required FormatTestBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'integer':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.integer = valueDes;
-                break;
-                case r'int32':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.int32 = valueDes;
-                break;
-                case r'int64':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.int64 = valueDes;
-                break;
-                case r'number':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.number = valueDes;
-                break;
-                case r'float':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(double)) as double;
-                result.float = valueDes;
-                break;
-                case r'double':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(double)) as double;
-                result.double_ = valueDes;
-                break;
-                case r'decimal':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(double)) as double;
-                result.decimal = valueDes;
-                break;
-                case r'string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.string = valueDes;
-                break;
-                case r'byte':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.byte = valueDes;
-                break;
-                case r'binary':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(Uint8List)) as Uint8List;
-                result.binary = valueDes;
-                break;
-                case r'date':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(Date)) as Date;
-                result.date = valueDes;
-                break;
-                case r'dateTime':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(DateTime)) as DateTime;
-                result.dateTime = valueDes;
-                break;
-                case r'uuid':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.uuid = valueDes;
-                break;
-                case r'password':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.password = valueDes;
-                break;
-                case r'pattern_with_digits':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.patternWithDigits = valueDes;
-                break;
-                case r'pattern_with_digits_and_delimiter':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.patternWithDigitsAndDelimiter = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.int64 != null) {
+      yield r'int64';
+      yield serializers.serialize(
+        object.int64,
+        specifiedType: const FullType(int),
+      );
     }
-}
-    
-    @override
-    FormatTest deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = FormatTestBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    yield r'number';
+    yield serializers.serialize(
+      object.number,
+      specifiedType: const FullType(num),
+    );
+    if (object.float != null) {
+      yield r'float';
+      yield serializers.serialize(
+        object.float,
+        specifiedType: const FullType(double),
+      );
     }
-}
+    if (object.double_ != null) {
+      yield r'double';
+      yield serializers.serialize(
+        object.double_,
+        specifiedType: const FullType(double),
+      );
+    }
+    if (object.decimal != null) {
+      yield r'decimal';
+      yield serializers.serialize(
+        object.decimal,
+        specifiedType: const FullType(double),
+      );
+    }
+    if (object.string != null) {
+      yield r'string';
+      yield serializers.serialize(
+        object.string,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'byte';
+    yield serializers.serialize(
+      object.byte,
+      specifiedType: const FullType(String),
+    );
+    if (object.binary != null) {
+      yield r'binary';
+      yield serializers.serialize(
+        object.binary,
+        specifiedType: const FullType(Uint8List),
+      );
+    }
+    yield r'date';
+    yield serializers.serialize(
+      object.date,
+      specifiedType: const FullType(Date),
+    );
+    if (object.dateTime != null) {
+      yield r'dateTime';
+      yield serializers.serialize(
+        object.dateTime,
+        specifiedType: const FullType(DateTime),
+      );
+    }
+    if (object.uuid != null) {
+      yield r'uuid';
+      yield serializers.serialize(
+        object.uuid,
+        specifiedType: const FullType(String),
+      );
+    }
+    yield r'password';
+    yield serializers.serialize(
+      object.password,
+      specifiedType: const FullType(String),
+    );
+    if (object.patternWithDigits != null) {
+      yield r'pattern_with_digits';
+      yield serializers.serialize(
+        object.patternWithDigits,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.patternWithDigitsAndDelimiter != null) {
+      yield r'pattern_with_digits_and_delimiter';
+      yield serializers.serialize(
+        object.patternWithDigitsAndDelimiter,
+        specifiedType: const FullType(String),
+      );
+    }
+  }
 
+  @override
+  Object serialize(
+    Serializers serializers,
+    FormatTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
 
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required FormatTestBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'integer':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.integer = valueDes;
+          break;
+        case r'int32':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.int32 = valueDes;
+          break;
+        case r'int64':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.int64 = valueDes;
+          break;
+        case r'number':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.number = valueDes;
+          break;
+        case r'float':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(double),
+          ) as double;
+          result.float = valueDes;
+          break;
+        case r'double':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(double),
+          ) as double;
+          result.double_ = valueDes;
+          break;
+        case r'decimal':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(double),
+          ) as double;
+          result.decimal = valueDes;
+          break;
+        case r'string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.string = valueDes;
+          break;
+        case r'byte':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.byte = valueDes;
+          break;
+        case r'binary':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(Uint8List),
+          ) as Uint8List;
+          result.binary = valueDes;
+          break;
+        case r'date':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(Date),
+          ) as Date;
+          result.date = valueDes;
+          break;
+        case r'dateTime':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(DateTime),
+          ) as DateTime;
+          result.dateTime = valueDes;
+          break;
+        case r'uuid':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.uuid = valueDes;
+          break;
+        case r'password':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.password = valueDes;
+          break;
+        case r'pattern_with_digits':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.patternWithDigits = valueDes;
+          break;
+        case r'pattern_with_digits_and_delimiter':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.patternWithDigitsAndDelimiter = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
 
+  @override
+  FormatTest deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = FormatTestBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
+}
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index fbf3306a31c..b9d94b28d3e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'has_only_read_only.g.dart';
 
@@ -17,87 +14,112 @@ part 'has_only_read_only.g.dart';
 /// * [foo] 
 @BuiltValue()
 abstract class HasOnlyReadOnly implements Built<HasOnlyReadOnly, HasOnlyReadOnlyBuilder> {
-    @BuiltValueField(wireName: r'bar')
-    String? get bar;
-    @BuiltValueField(wireName: r'foo')
-    String? get foo;
+  @BuiltValueField(wireName: r'bar')
+  String? get bar;
 
+  @BuiltValueField(wireName: r'foo')
+  String? get foo;
 
-    HasOnlyReadOnly._();
-    
-    factory HasOnlyReadOnly([void updates(HasOnlyReadOnlyBuilder b)]) = _$HasOnlyReadOnly;
+  HasOnlyReadOnly._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(HasOnlyReadOnlyBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
+  factory HasOnlyReadOnly([void updates(HasOnlyReadOnlyBuilder b)]) = _$HasOnlyReadOnly;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(HasOnlyReadOnlyBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<HasOnlyReadOnly> get serializer => _$HasOnlyReadOnlySerializer();
 }
 
 class _$HasOnlyReadOnlySerializer implements PrimitiveSerializer<HasOnlyReadOnly> {
-    @override
-    final Iterable<Type> types = const [HasOnlyReadOnly, _$HasOnlyReadOnly];
-
-    @override
-    final String wireName = r'HasOnlyReadOnly';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, HasOnlyReadOnly object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.bar != null) {
-            yield r'bar';
-            yield serializers.serialize(object.bar,
-                    specifiedType: const FullType(String));
-        }
-        if (object.foo != null) {
-            yield r'foo';
-            yield serializers.serialize(object.foo,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [HasOnlyReadOnly, _$HasOnlyReadOnly];
+
+  @override
+  final String wireName = r'HasOnlyReadOnly';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    HasOnlyReadOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.bar != null) {
+      yield r'bar';
+      yield serializers.serialize(
+        object.bar,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, HasOnlyReadOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.foo != null) {
+      yield r'foo';
+      yield serializers.serialize(
+        object.foo,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HasOnlyReadOnlyBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    HasOnlyReadOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required HasOnlyReadOnlyBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'bar':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.bar = valueDes;
-                break;
-                case r'foo':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.foo = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'bar':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.bar = valueDes;
+          break;
+        case r'foo':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.foo = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  HasOnlyReadOnly deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = HasOnlyReadOnlyBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    HasOnlyReadOnly deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = HasOnlyReadOnlyBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index df2d94b804a..de9061bed3b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'health_check_result.g.dart';
 
@@ -16,76 +13,96 @@ part 'health_check_result.g.dart';
 /// * [nullableMessage] 
 @BuiltValue()
 abstract class HealthCheckResult implements Built<HealthCheckResult, HealthCheckResultBuilder> {
-    @BuiltValueField(wireName: r'NullableMessage')
-    String? get nullableMessage;
+  @BuiltValueField(wireName: r'NullableMessage')
+  String? get nullableMessage;
 
+  HealthCheckResult._();
 
-    HealthCheckResult._();
-    
-    factory HealthCheckResult([void updates(HealthCheckResultBuilder b)]) = _$HealthCheckResult;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(HealthCheckResultBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
+  factory HealthCheckResult([void updates(HealthCheckResultBuilder b)]) = _$HealthCheckResult;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(HealthCheckResultBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<HealthCheckResult> get serializer => _$HealthCheckResultSerializer();
 }
 
 class _$HealthCheckResultSerializer implements PrimitiveSerializer<HealthCheckResult> {
-    @override
-    final Iterable<Type> types = const [HealthCheckResult, _$HealthCheckResult];
-
-    @override
-    final String wireName = r'HealthCheckResult';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, HealthCheckResult object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.nullableMessage != null) {
-            yield r'NullableMessage';
-            yield serializers.serialize(object.nullableMessage,
-                    specifiedType: const FullType.nullable(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, HealthCheckResult object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [HealthCheckResult, _$HealthCheckResult];
+
+  @override
+  final String wireName = r'HealthCheckResult';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    HealthCheckResult object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.nullableMessage != null) {
+      yield r'NullableMessage';
+      yield serializers.serialize(
+        object.nullableMessage,
+        specifiedType: const FullType.nullable(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required HealthCheckResultBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    HealthCheckResult object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required HealthCheckResultBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'NullableMessage':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(String)) as String?;
-                if (valueDes == null) continue;
-                result.nullableMessage = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    HealthCheckResult deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = HealthCheckResultBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'NullableMessage':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(String),
+          ) as String?;
+          if (valueDes == null) continue;
+          result.nullableMessage = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  HealthCheckResult deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = HealthCheckResultBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index 7811febad55..c87f435166f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -5,9 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'map_test.g.dart';
 
@@ -20,114 +17,150 @@ part 'map_test.g.dart';
 /// * [indirectMap] 
 @BuiltValue()
 abstract class MapTest implements Built<MapTest, MapTestBuilder> {
-    @BuiltValueField(wireName: r'map_map_of_string')
-    BuiltMap<String, BuiltMap<String, String>>? get mapMapOfString;
-    @BuiltValueField(wireName: r'map_of_enum_string')
-    BuiltMap<String, MapTestMapOfEnumStringEnum>? get mapOfEnumString;
-    // enum mapOfEnumStringEnum {  UPPER,  lower,  };
-    @BuiltValueField(wireName: r'direct_map')
-    BuiltMap<String, bool>? get directMap;
-    @BuiltValueField(wireName: r'indirect_map')
-    BuiltMap<String, bool>? get indirectMap;
+  @BuiltValueField(wireName: r'map_map_of_string')
+  BuiltMap<String, BuiltMap<String, String>>? get mapMapOfString;
 
+  @BuiltValueField(wireName: r'map_of_enum_string')
+  BuiltMap<String, MapTestMapOfEnumStringEnum>? get mapOfEnumString;
+  // enum mapOfEnumStringEnum {  UPPER,  lower,  };
 
-    MapTest._();
-    
-    factory MapTest([void updates(MapTestBuilder b)]) = _$MapTest;
+  @BuiltValueField(wireName: r'direct_map')
+  BuiltMap<String, bool>? get directMap;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(MapTestBuilder b) => b;
+  @BuiltValueField(wireName: r'indirect_map')
+  BuiltMap<String, bool>? get indirectMap;
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<MapTest> get serializer => _$MapTestSerializer();
+  MapTest._();
 
+  factory MapTest([void updates(MapTestBuilder b)]) = _$MapTest;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(MapTestBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<MapTest> get serializer => _$MapTestSerializer();
 }
 
 class _$MapTestSerializer implements PrimitiveSerializer<MapTest> {
-    @override
-    final Iterable<Type> types = const [MapTest, _$MapTest];
-
-    @override
-    final String wireName = r'MapTest';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, MapTest object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.mapMapOfString != null) {
-            yield r'map_map_of_string';
-            yield serializers.serialize(object.mapMapOfString,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]));
-        }
-        if (object.mapOfEnumString != null) {
-            yield r'map_of_enum_string';
-            yield serializers.serialize(object.mapOfEnumString,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)]));
-        }
-        if (object.directMap != null) {
-            yield r'direct_map';
-            yield serializers.serialize(object.directMap,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]));
-        }
-        if (object.indirectMap != null) {
-            yield r'indirect_map';
-            yield serializers.serialize(object.indirectMap,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]));
-        }
+  @override
+  final Iterable<Type> types = const [MapTest, _$MapTest];
+
+  @override
+  final String wireName = r'MapTest';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    MapTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.mapMapOfString != null) {
+      yield r'map_map_of_string';
+      yield serializers.serialize(
+        object.mapMapOfString,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, MapTest object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.mapOfEnumString != null) {
+      yield r'map_of_enum_string';
+      yield serializers.serialize(
+        object.mapOfEnumString,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)]),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MapTestBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'map_map_of_string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap<String, BuiltMap<String, String>>;
-                result.mapMapOfString.replace(valueDes);
-                break;
-                case r'map_of_enum_string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])) as BuiltMap<String, MapTestMapOfEnumStringEnum>;
-                result.mapOfEnumString.replace(valueDes);
-                break;
-                case r'direct_map':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
-                result.directMap.replace(valueDes);
-                break;
-                case r'indirect_map':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap<String, bool>;
-                result.indirectMap.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.directMap != null) {
+      yield r'direct_map';
+      yield serializers.serialize(
+        object.directMap,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]),
+      );
     }
-}
-    
-    @override
-    MapTest deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = MapTestBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.indirectMap != null) {
+      yield r'indirect_map';
+      yield serializers.serialize(
+        object.indirectMap,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    MapTest object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required MapTestBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'map_map_of_string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])]),
+          ) as BuiltMap<String, BuiltMap<String, String>>;
+          result.mapMapOfString.replace(valueDes);
+          break;
+        case r'map_of_enum_string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)]),
+          ) as BuiltMap<String, MapTestMapOfEnumStringEnum>;
+          result.mapOfEnumString.replace(valueDes);
+          break;
+        case r'direct_map':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]),
+          ) as BuiltMap<String, bool>;
+          result.directMap.replace(valueDes);
+          break;
+        case r'indirect_map':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)]),
+          ) as BuiltMap<String, bool>;
+          result.indirectMap.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  MapTest deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = MapTestBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
 class MapTestMapOfEnumStringEnum extends EnumClass {
 
   @BuiltValueEnumConst(wireName: r'UPPER')
@@ -145,4 +178,3 @@ class MapTestMapOfEnumStringEnum extends EnumClass {
   static MapTestMapOfEnumStringEnum valueOf(String name) => _$mapTestMapOfEnumStringEnumValueOf(name);
 }
 
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index b050360e94d..8711a865f41 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -6,9 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'mixed_properties_and_additional_properties_class.g.dart';
 
@@ -20,99 +17,129 @@ part 'mixed_properties_and_additional_properties_class.g.dart';
 /// * [map] 
 @BuiltValue()
 abstract class MixedPropertiesAndAdditionalPropertiesClass implements Built<MixedPropertiesAndAdditionalPropertiesClass, MixedPropertiesAndAdditionalPropertiesClassBuilder> {
-    @BuiltValueField(wireName: r'uuid')
-    String? get uuid;
-    @BuiltValueField(wireName: r'dateTime')
-    DateTime? get dateTime;
-    @BuiltValueField(wireName: r'map')
-    BuiltMap<String, Animal>? get map;
+  @BuiltValueField(wireName: r'uuid')
+  String? get uuid;
 
+  @BuiltValueField(wireName: r'dateTime')
+  DateTime? get dateTime;
 
-    MixedPropertiesAndAdditionalPropertiesClass._();
-    
-    factory MixedPropertiesAndAdditionalPropertiesClass([void updates(MixedPropertiesAndAdditionalPropertiesClassBuilder b)]) = _$MixedPropertiesAndAdditionalPropertiesClass;
+  @BuiltValueField(wireName: r'map')
+  BuiltMap<String, Animal>? get map;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(MixedPropertiesAndAdditionalPropertiesClassBuilder b) => b;
+  MixedPropertiesAndAdditionalPropertiesClass._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
+  factory MixedPropertiesAndAdditionalPropertiesClass([void updates(MixedPropertiesAndAdditionalPropertiesClassBuilder b)]) = _$MixedPropertiesAndAdditionalPropertiesClass;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(MixedPropertiesAndAdditionalPropertiesClassBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<MixedPropertiesAndAdditionalPropertiesClass> get serializer => _$MixedPropertiesAndAdditionalPropertiesClassSerializer();
 }
 
 class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements PrimitiveSerializer<MixedPropertiesAndAdditionalPropertiesClass> {
-    @override
-    final Iterable<Type> types = const [MixedPropertiesAndAdditionalPropertiesClass, _$MixedPropertiesAndAdditionalPropertiesClass];
-
-    @override
-    final String wireName = r'MixedPropertiesAndAdditionalPropertiesClass';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, MixedPropertiesAndAdditionalPropertiesClass object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.uuid != null) {
-            yield r'uuid';
-            yield serializers.serialize(object.uuid,
-                    specifiedType: const FullType(String));
-        }
-        if (object.dateTime != null) {
-            yield r'dateTime';
-            yield serializers.serialize(object.dateTime,
-                    specifiedType: const FullType(DateTime));
-        }
-        if (object.map != null) {
-            yield r'map';
-            yield serializers.serialize(object.map,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)]));
-        }
+  @override
+  final Iterable<Type> types = const [MixedPropertiesAndAdditionalPropertiesClass, _$MixedPropertiesAndAdditionalPropertiesClass];
+
+  @override
+  final String wireName = r'MixedPropertiesAndAdditionalPropertiesClass';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    MixedPropertiesAndAdditionalPropertiesClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.uuid != null) {
+      yield r'uuid';
+      yield serializers.serialize(
+        object.uuid,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, MixedPropertiesAndAdditionalPropertiesClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.dateTime != null) {
+      yield r'dateTime';
+      yield serializers.serialize(
+        object.dateTime,
+        specifiedType: const FullType(DateTime),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required MixedPropertiesAndAdditionalPropertiesClassBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'uuid':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.uuid = valueDes;
-                break;
-                case r'dateTime':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(DateTime)) as DateTime;
-                result.dateTime = valueDes;
-                break;
-                case r'map':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])) as BuiltMap<String, Animal>;
-                result.map.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.map != null) {
+      yield r'map';
+      yield serializers.serialize(
+        object.map,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)]),
+      );
     }
-}
-    
-    @override
-    MixedPropertiesAndAdditionalPropertiesClass deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = MixedPropertiesAndAdditionalPropertiesClassBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    MixedPropertiesAndAdditionalPropertiesClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required MixedPropertiesAndAdditionalPropertiesClassBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'uuid':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.uuid = valueDes;
+          break;
+        case r'dateTime':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(DateTime),
+          ) as DateTime;
+          result.dateTime = valueDes;
+          break;
+        case r'map':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)]),
+          ) as BuiltMap<String, Animal>;
+          result.map.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  MixedPropertiesAndAdditionalPropertiesClass deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = MixedPropertiesAndAdditionalPropertiesClassBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 10de8763c3f..7768fd40f0a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'model200_response.g.dart';
 
@@ -17,87 +14,112 @@ part 'model200_response.g.dart';
 /// * [classField] 
 @BuiltValue()
 abstract class Model200Response implements Built<Model200Response, Model200ResponseBuilder> {
-    @BuiltValueField(wireName: r'name')
-    int? get name;
-    @BuiltValueField(wireName: r'class')
-    String? get classField;
+  @BuiltValueField(wireName: r'name')
+  int? get name;
 
+  @BuiltValueField(wireName: r'class')
+  String? get classField;
 
-    Model200Response._();
-    
-    factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
+  Model200Response._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(Model200ResponseBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Model200Response> get serializer => _$Model200ResponseSerializer();
+  factory Model200Response([void updates(Model200ResponseBuilder b)]) = _$Model200Response;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(Model200ResponseBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Model200Response> get serializer => _$Model200ResponseSerializer();
 }
 
 class _$Model200ResponseSerializer implements PrimitiveSerializer<Model200Response> {
-    @override
-    final Iterable<Type> types = const [Model200Response, _$Model200Response];
-
-    @override
-    final String wireName = r'Model200Response';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Model200Response object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(int));
-        }
-        if (object.classField != null) {
-            yield r'class';
-            yield serializers.serialize(object.classField,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Model200Response, _$Model200Response];
+
+  @override
+  final String wireName = r'Model200Response';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Model200Response object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Model200Response object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.classField != null) {
+      yield r'class';
+      yield serializers.serialize(
+        object.classField,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required Model200ResponseBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Model200Response object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required Model200ResponseBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.name = valueDes;
-                break;
-                case r'class':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.classField = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.name = valueDes;
+          break;
+        case r'class':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.classField = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Model200Response deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = Model200ResponseBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    Model200Response deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = Model200ResponseBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 133b4f80817..78c595e4f10 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'model_client.g.dart';
 
@@ -16,75 +13,95 @@ part 'model_client.g.dart';
 /// * [client] 
 @BuiltValue()
 abstract class ModelClient implements Built<ModelClient, ModelClientBuilder> {
-    @BuiltValueField(wireName: r'client')
-    String? get client;
+  @BuiltValueField(wireName: r'client')
+  String? get client;
 
+  ModelClient._();
 
-    ModelClient._();
-    
-    factory ModelClient([void updates(ModelClientBuilder b)]) = _$ModelClient;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ModelClientBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ModelClient> get serializer => _$ModelClientSerializer();
+  factory ModelClient([void updates(ModelClientBuilder b)]) = _$ModelClient;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ModelClientBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ModelClient> get serializer => _$ModelClientSerializer();
 }
 
 class _$ModelClientSerializer implements PrimitiveSerializer<ModelClient> {
-    @override
-    final Iterable<Type> types = const [ModelClient, _$ModelClient];
-
-    @override
-    final String wireName = r'ModelClient';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ModelClient object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.client != null) {
-            yield r'client';
-            yield serializers.serialize(object.client,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ModelClient object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ModelClient, _$ModelClient];
+
+  @override
+  final String wireName = r'ModelClient';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ModelClient object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.client != null) {
+      yield r'client';
+      yield serializers.serialize(
+        object.client,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelClientBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ModelClient object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ModelClientBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'client':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.client = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ModelClient deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelClientBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'client':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.client = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ModelClient deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ModelClientBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index e5c9153c691..2a4c01eae99 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'model_file.g.dart';
 
@@ -16,76 +13,96 @@ part 'model_file.g.dart';
 /// * [sourceURI] - Test capitalization
 @BuiltValue()
 abstract class ModelFile implements Built<ModelFile, ModelFileBuilder> {
-    /// Test capitalization
-    @BuiltValueField(wireName: r'sourceURI')
-    String? get sourceURI;
+  /// Test capitalization
+  @BuiltValueField(wireName: r'sourceURI')
+  String? get sourceURI;
 
+  ModelFile._();
 
-    ModelFile._();
-    
-    factory ModelFile([void updates(ModelFileBuilder b)]) = _$ModelFile;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ModelFileBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ModelFile> get serializer => _$ModelFileSerializer();
+  factory ModelFile([void updates(ModelFileBuilder b)]) = _$ModelFile;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ModelFileBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ModelFile> get serializer => _$ModelFileSerializer();
 }
 
 class _$ModelFileSerializer implements PrimitiveSerializer<ModelFile> {
-    @override
-    final Iterable<Type> types = const [ModelFile, _$ModelFile];
-
-    @override
-    final String wireName = r'ModelFile';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ModelFile object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.sourceURI != null) {
-            yield r'sourceURI';
-            yield serializers.serialize(object.sourceURI,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ModelFile object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ModelFile, _$ModelFile];
+
+  @override
+  final String wireName = r'ModelFile';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ModelFile object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.sourceURI != null) {
+      yield r'sourceURI';
+      yield serializers.serialize(
+        object.sourceURI,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelFileBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ModelFile object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ModelFileBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'sourceURI':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.sourceURI = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ModelFile deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelFileBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'sourceURI':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.sourceURI = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ModelFile deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ModelFileBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index a4c74d4c0c1..7f6b72c44e5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'model_list.g.dart';
 
@@ -16,75 +13,95 @@ part 'model_list.g.dart';
 /// * [n123list] 
 @BuiltValue()
 abstract class ModelList implements Built<ModelList, ModelListBuilder> {
-    @BuiltValueField(wireName: r'123-list')
-    String? get n123list;
+  @BuiltValueField(wireName: r'123-list')
+  String? get n123list;
 
+  ModelList._();
 
-    ModelList._();
-    
-    factory ModelList([void updates(ModelListBuilder b)]) = _$ModelList;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ModelListBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ModelList> get serializer => _$ModelListSerializer();
+  factory ModelList([void updates(ModelListBuilder b)]) = _$ModelList;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ModelListBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ModelList> get serializer => _$ModelListSerializer();
 }
 
 class _$ModelListSerializer implements PrimitiveSerializer<ModelList> {
-    @override
-    final Iterable<Type> types = const [ModelList, _$ModelList];
-
-    @override
-    final String wireName = r'ModelList';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ModelList object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.n123list != null) {
-            yield r'123-list';
-            yield serializers.serialize(object.n123list,
-                    specifiedType: const FullType(String));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ModelList object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ModelList, _$ModelList];
+
+  @override
+  final String wireName = r'ModelList';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ModelList object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.n123list != null) {
+      yield r'123-list';
+      yield serializers.serialize(
+        object.n123list,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelListBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ModelList object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ModelListBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'123-list':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.n123list = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ModelList deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelListBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'123-list':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.n123list = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ModelList deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ModelListBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index e5da83863f1..369f3c21bf7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'model_return.g.dart';
 
@@ -16,75 +13,95 @@ part 'model_return.g.dart';
 /// * [return_] 
 @BuiltValue()
 abstract class ModelReturn implements Built<ModelReturn, ModelReturnBuilder> {
-    @BuiltValueField(wireName: r'return')
-    int? get return_;
+  @BuiltValueField(wireName: r'return')
+  int? get return_;
 
+  ModelReturn._();
 
-    ModelReturn._();
-    
-    factory ModelReturn([void updates(ModelReturnBuilder b)]) = _$ModelReturn;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ModelReturnBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ModelReturn> get serializer => _$ModelReturnSerializer();
+  factory ModelReturn([void updates(ModelReturnBuilder b)]) = _$ModelReturn;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ModelReturnBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ModelReturn> get serializer => _$ModelReturnSerializer();
 }
 
 class _$ModelReturnSerializer implements PrimitiveSerializer<ModelReturn> {
-    @override
-    final Iterable<Type> types = const [ModelReturn, _$ModelReturn];
-
-    @override
-    final String wireName = r'ModelReturn';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ModelReturn object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.return_ != null) {
-            yield r'return';
-            yield serializers.serialize(object.return_,
-                    specifiedType: const FullType(int));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, ModelReturn object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [ModelReturn, _$ModelReturn];
+
+  @override
+  final String wireName = r'ModelReturn';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ModelReturn object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.return_ != null) {
+      yield r'return';
+      yield serializers.serialize(
+        object.return_,
+        specifiedType: const FullType(int),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ModelReturnBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ModelReturn object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ModelReturnBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'return':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.return_ = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    ModelReturn deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ModelReturnBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'return':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.return_ = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ModelReturn deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ModelReturnBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index dcfaf8e5752..500f22835ce 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'name.g.dart';
 
@@ -19,109 +16,144 @@ part 'name.g.dart';
 /// * [n123number] 
 @BuiltValue()
 abstract class Name implements Built<Name, NameBuilder> {
-    @BuiltValueField(wireName: r'name')
-    int get name;
-    @BuiltValueField(wireName: r'snake_case')
-    int? get snakeCase;
-    @BuiltValueField(wireName: r'property')
-    String? get property;
-    @BuiltValueField(wireName: r'123Number')
-    int? get n123number;
+  @BuiltValueField(wireName: r'name')
+  int get name;
 
+  @BuiltValueField(wireName: r'snake_case')
+  int? get snakeCase;
 
-    Name._();
-    
-    factory Name([void updates(NameBuilder b)]) = _$Name;
+  @BuiltValueField(wireName: r'property')
+  String? get property;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(NameBuilder b) => b;
+  @BuiltValueField(wireName: r'123Number')
+  int? get n123number;
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Name> get serializer => _$NameSerializer();
+  Name._();
 
+  factory Name([void updates(NameBuilder b)]) = _$Name;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(NameBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Name> get serializer => _$NameSerializer();
 }
 
 class _$NameSerializer implements PrimitiveSerializer<Name> {
-    @override
-    final Iterable<Type> types = const [Name, _$Name];
-
-    @override
-    final String wireName = r'Name';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Name object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        yield r'name';
-        yield serializers.serialize(object.name,
-                specifiedType: const FullType(int));
-        if (object.snakeCase != null) {
-            yield r'snake_case';
-            yield serializers.serialize(object.snakeCase,
-                    specifiedType: const FullType(int));
-        }
-        if (object.property != null) {
-            yield r'property';
-            yield serializers.serialize(object.property,
-                    specifiedType: const FullType(String));
-        }
-        if (object.n123number != null) {
-            yield r'123Number';
-            yield serializers.serialize(object.n123number,
-                    specifiedType: const FullType(int));
-        }
+  @override
+  final Iterable<Type> types = const [Name, _$Name];
+
+  @override
+  final String wireName = r'Name';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Name object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    yield r'name';
+    yield serializers.serialize(
+      object.name,
+      specifiedType: const FullType(int),
+    );
+    if (object.snakeCase != null) {
+      yield r'snake_case';
+      yield serializers.serialize(
+        object.snakeCase,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Name object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.property != null) {
+      yield r'property';
+      yield serializers.serialize(
+        object.property,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NameBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.name = valueDes;
-                break;
-                case r'snake_case':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.snakeCase = valueDes;
-                break;
-                case r'property':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.property = valueDes;
-                break;
-                case r'123Number':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.n123number = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.n123number != null) {
+      yield r'123Number';
+      yield serializers.serialize(
+        object.n123number,
+        specifiedType: const FullType(int),
+      );
     }
-}
-    
-    @override
-    Name deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = NameBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Name object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required NameBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.name = valueDes;
+          break;
+        case r'snake_case':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.snakeCase = valueDes;
+          break;
+        case r'property':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.property = valueDes;
+          break;
+        case r'123Number':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.n123number = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Name deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = NameBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index 04f1999a89d..9bfe8cf4ed6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -7,9 +7,6 @@ import 'package:openapi/src/model/date.dart';
 import 'package:built_value/json_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'nullable_class.g.dart';
 
@@ -30,217 +27,292 @@ part 'nullable_class.g.dart';
 /// * [objectItemsNullable] 
 @BuiltValue()
 abstract class NullableClass implements Built<NullableClass, NullableClassBuilder> {
-    @BuiltValueField(wireName: r'integer_prop')
-    int? get integerProp;
-    @BuiltValueField(wireName: r'number_prop')
-    num? get numberProp;
-    @BuiltValueField(wireName: r'boolean_prop')
-    bool? get booleanProp;
-    @BuiltValueField(wireName: r'string_prop')
-    String? get stringProp;
-    @BuiltValueField(wireName: r'date_prop')
-    Date? get dateProp;
-    @BuiltValueField(wireName: r'datetime_prop')
-    DateTime? get datetimeProp;
-    @BuiltValueField(wireName: r'array_nullable_prop')
-    BuiltList<JsonObject>? get arrayNullableProp;
-    @BuiltValueField(wireName: r'array_and_items_nullable_prop')
-    BuiltList<JsonObject?>? get arrayAndItemsNullableProp;
-    @BuiltValueField(wireName: r'array_items_nullable')
-    BuiltList<JsonObject?>? get arrayItemsNullable;
-    @BuiltValueField(wireName: r'object_nullable_prop')
-    BuiltMap<String, JsonObject>? get objectNullableProp;
-    @BuiltValueField(wireName: r'object_and_items_nullable_prop')
-    BuiltMap<String, JsonObject?>? get objectAndItemsNullableProp;
-    @BuiltValueField(wireName: r'object_items_nullable')
-    BuiltMap<String, JsonObject?>? get objectItemsNullable;
-
-
-    NullableClass._();
-    
-    factory NullableClass([void updates(NullableClassBuilder b)]) = _$NullableClass;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(NullableClassBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<NullableClass> get serializer => _$NullableClassSerializer();
+  @BuiltValueField(wireName: r'integer_prop')
+  int? get integerProp;
 
+  @BuiltValueField(wireName: r'number_prop')
+  num? get numberProp;
 
+  @BuiltValueField(wireName: r'boolean_prop')
+  bool? get booleanProp;
+
+  @BuiltValueField(wireName: r'string_prop')
+  String? get stringProp;
+
+  @BuiltValueField(wireName: r'date_prop')
+  Date? get dateProp;
+
+  @BuiltValueField(wireName: r'datetime_prop')
+  DateTime? get datetimeProp;
+
+  @BuiltValueField(wireName: r'array_nullable_prop')
+  BuiltList<JsonObject>? get arrayNullableProp;
+
+  @BuiltValueField(wireName: r'array_and_items_nullable_prop')
+  BuiltList<JsonObject?>? get arrayAndItemsNullableProp;
+
+  @BuiltValueField(wireName: r'array_items_nullable')
+  BuiltList<JsonObject?>? get arrayItemsNullable;
+
+  @BuiltValueField(wireName: r'object_nullable_prop')
+  BuiltMap<String, JsonObject>? get objectNullableProp;
+
+  @BuiltValueField(wireName: r'object_and_items_nullable_prop')
+  BuiltMap<String, JsonObject?>? get objectAndItemsNullableProp;
+
+  @BuiltValueField(wireName: r'object_items_nullable')
+  BuiltMap<String, JsonObject?>? get objectItemsNullable;
+
+  NullableClass._();
+
+  factory NullableClass([void updates(NullableClassBuilder b)]) = _$NullableClass;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(NullableClassBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<NullableClass> get serializer => _$NullableClassSerializer();
 }
 
 class _$NullableClassSerializer implements PrimitiveSerializer<NullableClass> {
-    @override
-    final Iterable<Type> types = const [NullableClass, _$NullableClass];
-
-    @override
-    final String wireName = r'NullableClass';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, NullableClass object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.integerProp != null) {
-            yield r'integer_prop';
-            yield serializers.serialize(object.integerProp,
-                    specifiedType: const FullType.nullable(int));
-        }
-        if (object.numberProp != null) {
-            yield r'number_prop';
-            yield serializers.serialize(object.numberProp,
-                    specifiedType: const FullType.nullable(num));
-        }
-        if (object.booleanProp != null) {
-            yield r'boolean_prop';
-            yield serializers.serialize(object.booleanProp,
-                    specifiedType: const FullType.nullable(bool));
-        }
-        if (object.stringProp != null) {
-            yield r'string_prop';
-            yield serializers.serialize(object.stringProp,
-                    specifiedType: const FullType.nullable(String));
-        }
-        if (object.dateProp != null) {
-            yield r'date_prop';
-            yield serializers.serialize(object.dateProp,
-                    specifiedType: const FullType.nullable(Date));
-        }
-        if (object.datetimeProp != null) {
-            yield r'datetime_prop';
-            yield serializers.serialize(object.datetimeProp,
-                    specifiedType: const FullType.nullable(DateTime));
-        }
-        if (object.arrayNullableProp != null) {
-            yield r'array_nullable_prop';
-            yield serializers.serialize(object.arrayNullableProp,
-                    specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)]));
-        }
-        if (object.arrayAndItemsNullableProp != null) {
-            yield r'array_and_items_nullable_prop';
-            yield serializers.serialize(object.arrayAndItemsNullableProp,
-                    specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)]));
-        }
-        if (object.arrayItemsNullable != null) {
-            yield r'array_items_nullable';
-            yield serializers.serialize(object.arrayItemsNullable,
-                    specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)]));
-        }
-        if (object.objectNullableProp != null) {
-            yield r'object_nullable_prop';
-            yield serializers.serialize(object.objectNullableProp,
-                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)]));
-        }
-        if (object.objectAndItemsNullableProp != null) {
-            yield r'object_and_items_nullable_prop';
-            yield serializers.serialize(object.objectAndItemsNullableProp,
-                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]));
-        }
-        if (object.objectItemsNullable != null) {
-            yield r'object_items_nullable';
-            yield serializers.serialize(object.objectItemsNullable,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]));
-        }
-    }
+  @override
+  final Iterable<Type> types = const [NullableClass, _$NullableClass];
 
-    @override
-    Object serialize(Serializers serializers, NullableClass object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
+  @override
+  final String wireName = r'NullableClass';
 
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NullableClassBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'integer_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(int)) as int?;
-                if (valueDes == null) continue;
-                result.integerProp = valueDes;
-                break;
-                case r'number_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(num)) as num?;
-                if (valueDes == null) continue;
-                result.numberProp = valueDes;
-                break;
-                case r'boolean_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(bool)) as bool?;
-                if (valueDes == null) continue;
-                result.booleanProp = valueDes;
-                break;
-                case r'string_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(String)) as String?;
-                if (valueDes == null) continue;
-                result.stringProp = valueDes;
-                break;
-                case r'date_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(Date)) as Date?;
-                if (valueDes == null) continue;
-                result.dateProp = valueDes;
-                break;
-                case r'datetime_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(DateTime)) as DateTime?;
-                if (valueDes == null) continue;
-                result.datetimeProp = valueDes;
-                break;
-                case r'array_nullable_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)])) as BuiltList<JsonObject>?;
-                if (valueDes == null) continue;
-                result.arrayNullableProp.replace(valueDes);
-                break;
-                case r'array_and_items_nullable_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>?;
-                if (valueDes == null) continue;
-                result.arrayAndItemsNullableProp.replace(valueDes);
-                break;
-                case r'array_items_nullable':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList<JsonObject?>;
-                result.arrayItemsNullable.replace(valueDes);
-                break;
-                case r'object_nullable_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap<String, JsonObject>?;
-                if (valueDes == null) continue;
-                result.objectNullableProp.replace(valueDes);
-                break;
-                case r'object_and_items_nullable_prop':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>?;
-                if (valueDes == null) continue;
-                result.objectAndItemsNullableProp.replace(valueDes);
-                break;
-                case r'object_items_nullable':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap<String, JsonObject?>;
-                result.objectItemsNullable.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    NullableClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.integerProp != null) {
+      yield r'integer_prop';
+      yield serializers.serialize(
+        object.integerProp,
+        specifiedType: const FullType.nullable(int),
+      );
     }
-}
-    
-    @override
-    NullableClass deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = NullableClassBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.numberProp != null) {
+      yield r'number_prop';
+      yield serializers.serialize(
+        object.numberProp,
+        specifiedType: const FullType.nullable(num),
+      );
     }
-}
+    if (object.booleanProp != null) {
+      yield r'boolean_prop';
+      yield serializers.serialize(
+        object.booleanProp,
+        specifiedType: const FullType.nullable(bool),
+      );
+    }
+    if (object.stringProp != null) {
+      yield r'string_prop';
+      yield serializers.serialize(
+        object.stringProp,
+        specifiedType: const FullType.nullable(String),
+      );
+    }
+    if (object.dateProp != null) {
+      yield r'date_prop';
+      yield serializers.serialize(
+        object.dateProp,
+        specifiedType: const FullType.nullable(Date),
+      );
+    }
+    if (object.datetimeProp != null) {
+      yield r'datetime_prop';
+      yield serializers.serialize(
+        object.datetimeProp,
+        specifiedType: const FullType.nullable(DateTime),
+      );
+    }
+    if (object.arrayNullableProp != null) {
+      yield r'array_nullable_prop';
+      yield serializers.serialize(
+        object.arrayNullableProp,
+        specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)]),
+      );
+    }
+    if (object.arrayAndItemsNullableProp != null) {
+      yield r'array_and_items_nullable_prop';
+      yield serializers.serialize(
+        object.arrayAndItemsNullableProp,
+        specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)]),
+      );
+    }
+    if (object.arrayItemsNullable != null) {
+      yield r'array_items_nullable';
+      yield serializers.serialize(
+        object.arrayItemsNullable,
+        specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)]),
+      );
+    }
+    if (object.objectNullableProp != null) {
+      yield r'object_nullable_prop';
+      yield serializers.serialize(
+        object.objectNullableProp,
+        specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)]),
+      );
+    }
+    if (object.objectAndItemsNullableProp != null) {
+      yield r'object_and_items_nullable_prop';
+      yield serializers.serialize(
+        object.objectAndItemsNullableProp,
+        specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]),
+      );
+    }
+    if (object.objectItemsNullable != null) {
+      yield r'object_items_nullable';
+      yield serializers.serialize(
+        object.objectItemsNullable,
+        specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]),
+      );
+    }
+  }
 
+  @override
+  Object serialize(
+    Serializers serializers,
+    NullableClass object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
 
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required NullableClassBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'integer_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(int),
+          ) as int?;
+          if (valueDes == null) continue;
+          result.integerProp = valueDes;
+          break;
+        case r'number_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(num),
+          ) as num?;
+          if (valueDes == null) continue;
+          result.numberProp = valueDes;
+          break;
+        case r'boolean_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(bool),
+          ) as bool?;
+          if (valueDes == null) continue;
+          result.booleanProp = valueDes;
+          break;
+        case r'string_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(String),
+          ) as String?;
+          if (valueDes == null) continue;
+          result.stringProp = valueDes;
+          break;
+        case r'date_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(Date),
+          ) as Date?;
+          if (valueDes == null) continue;
+          result.dateProp = valueDes;
+          break;
+        case r'datetime_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(DateTime),
+          ) as DateTime?;
+          if (valueDes == null) continue;
+          result.datetimeProp = valueDes;
+          break;
+        case r'array_nullable_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)]),
+          ) as BuiltList<JsonObject>?;
+          if (valueDes == null) continue;
+          result.arrayNullableProp.replace(valueDes);
+          break;
+        case r'array_and_items_nullable_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)]),
+          ) as BuiltList<JsonObject?>?;
+          if (valueDes == null) continue;
+          result.arrayAndItemsNullableProp.replace(valueDes);
+          break;
+        case r'array_items_nullable':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)]),
+          ) as BuiltList<JsonObject?>;
+          result.arrayItemsNullable.replace(valueDes);
+          break;
+        case r'object_nullable_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)]),
+          ) as BuiltMap<String, JsonObject>?;
+          if (valueDes == null) continue;
+          result.objectNullableProp.replace(valueDes);
+          break;
+        case r'object_and_items_nullable_prop':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]),
+          ) as BuiltMap<String, JsonObject?>?;
+          if (valueDes == null) continue;
+          result.objectAndItemsNullableProp.replace(valueDes);
+          break;
+        case r'object_items_nullable':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]),
+          ) as BuiltMap<String, JsonObject?>;
+          result.objectItemsNullable.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
 
+  @override
+  NullableClass deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = NullableClassBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
+}
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index 8c8811b3e7e..3755af82b7b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'number_only.g.dart';
 
@@ -16,75 +13,95 @@ part 'number_only.g.dart';
 /// * [justNumber] 
 @BuiltValue()
 abstract class NumberOnly implements Built<NumberOnly, NumberOnlyBuilder> {
-    @BuiltValueField(wireName: r'JustNumber')
-    num? get justNumber;
+  @BuiltValueField(wireName: r'JustNumber')
+  num? get justNumber;
 
+  NumberOnly._();
 
-    NumberOnly._();
-    
-    factory NumberOnly([void updates(NumberOnlyBuilder b)]) = _$NumberOnly;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(NumberOnlyBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<NumberOnly> get serializer => _$NumberOnlySerializer();
+  factory NumberOnly([void updates(NumberOnlyBuilder b)]) = _$NumberOnly;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(NumberOnlyBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<NumberOnly> get serializer => _$NumberOnlySerializer();
 }
 
 class _$NumberOnlySerializer implements PrimitiveSerializer<NumberOnly> {
-    @override
-    final Iterable<Type> types = const [NumberOnly, _$NumberOnly];
-
-    @override
-    final String wireName = r'NumberOnly';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, NumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.justNumber != null) {
-            yield r'JustNumber';
-            yield serializers.serialize(object.justNumber,
-                    specifiedType: const FullType(num));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, NumberOnly object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [NumberOnly, _$NumberOnly];
+
+  @override
+  final String wireName = r'NumberOnly';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    NumberOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.justNumber != null) {
+      yield r'JustNumber';
+      yield serializers.serialize(
+        object.justNumber,
+        specifiedType: const FullType(num),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required NumberOnlyBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    NumberOnly object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required NumberOnlyBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'JustNumber':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.justNumber = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    NumberOnly deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = NumberOnlyBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'JustNumber':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.justNumber = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  NumberOnly deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = NumberOnlyBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index c8bec44c86f..5d59d503730 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -6,9 +6,6 @@ import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/deprecated_object.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'object_with_deprecated_fields.g.dart';
 
@@ -21,111 +18,146 @@ part 'object_with_deprecated_fields.g.dart';
 /// * [bars] 
 @BuiltValue()
 abstract class ObjectWithDeprecatedFields implements Built<ObjectWithDeprecatedFields, ObjectWithDeprecatedFieldsBuilder> {
-    @BuiltValueField(wireName: r'uuid')
-    String? get uuid;
-    @BuiltValueField(wireName: r'id')
-    num? get id;
-    @BuiltValueField(wireName: r'deprecatedRef')
-    DeprecatedObject? get deprecatedRef;
-    @BuiltValueField(wireName: r'bars')
-    BuiltList<String>? get bars;
+  @BuiltValueField(wireName: r'uuid')
+  String? get uuid;
 
+  @BuiltValueField(wireName: r'id')
+  num? get id;
 
-    ObjectWithDeprecatedFields._();
-    
-    factory ObjectWithDeprecatedFields([void updates(ObjectWithDeprecatedFieldsBuilder b)]) = _$ObjectWithDeprecatedFields;
+  @BuiltValueField(wireName: r'deprecatedRef')
+  DeprecatedObject? get deprecatedRef;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ObjectWithDeprecatedFieldsBuilder b) => b;
+  @BuiltValueField(wireName: r'bars')
+  BuiltList<String>? get bars;
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
+  ObjectWithDeprecatedFields._();
 
+  factory ObjectWithDeprecatedFields([void updates(ObjectWithDeprecatedFieldsBuilder b)]) = _$ObjectWithDeprecatedFields;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ObjectWithDeprecatedFieldsBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ObjectWithDeprecatedFields> get serializer => _$ObjectWithDeprecatedFieldsSerializer();
 }
 
 class _$ObjectWithDeprecatedFieldsSerializer implements PrimitiveSerializer<ObjectWithDeprecatedFields> {
-    @override
-    final Iterable<Type> types = const [ObjectWithDeprecatedFields, _$ObjectWithDeprecatedFields];
-
-    @override
-    final String wireName = r'ObjectWithDeprecatedFields';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ObjectWithDeprecatedFields object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.uuid != null) {
-            yield r'uuid';
-            yield serializers.serialize(object.uuid,
-                    specifiedType: const FullType(String));
-        }
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(num));
-        }
-        if (object.deprecatedRef != null) {
-            yield r'deprecatedRef';
-            yield serializers.serialize(object.deprecatedRef,
-                    specifiedType: const FullType(DeprecatedObject));
-        }
-        if (object.bars != null) {
-            yield r'bars';
-            yield serializers.serialize(object.bars,
-                    specifiedType: const FullType(BuiltList, [FullType(String)]));
-        }
+  @override
+  final Iterable<Type> types = const [ObjectWithDeprecatedFields, _$ObjectWithDeprecatedFields];
+
+  @override
+  final String wireName = r'ObjectWithDeprecatedFields';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ObjectWithDeprecatedFields object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.uuid != null) {
+      yield r'uuid';
+      yield serializers.serialize(
+        object.uuid,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, ObjectWithDeprecatedFields object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(num),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ObjectWithDeprecatedFieldsBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'uuid':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.uuid = valueDes;
-                break;
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.id = valueDes;
-                break;
-                case r'deprecatedRef':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(DeprecatedObject)) as DeprecatedObject;
-                result.deprecatedRef.replace(valueDes);
-                break;
-                case r'bars':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList<String>;
-                result.bars.replace(valueDes);
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.deprecatedRef != null) {
+      yield r'deprecatedRef';
+      yield serializers.serialize(
+        object.deprecatedRef,
+        specifiedType: const FullType(DeprecatedObject),
+      );
     }
-}
-    
-    @override
-    ObjectWithDeprecatedFields deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ObjectWithDeprecatedFieldsBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.bars != null) {
+      yield r'bars';
+      yield serializers.serialize(
+        object.bars,
+        specifiedType: const FullType(BuiltList, [FullType(String)]),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ObjectWithDeprecatedFields object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ObjectWithDeprecatedFieldsBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'uuid':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.uuid = valueDes;
+          break;
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.id = valueDes;
+          break;
+        case r'deprecatedRef':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(DeprecatedObject),
+          ) as DeprecatedObject;
+          result.deprecatedRef.replace(valueDes);
+          break;
+        case r'bars':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(String)]),
+          ) as BuiltList<String>;
+          result.bars.replace(valueDes);
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  ObjectWithDeprecatedFields deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ObjectWithDeprecatedFieldsBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index f0759a6e23f..c4b0498db23 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -5,9 +5,6 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'order.g.dart';
 
@@ -22,140 +19,186 @@ part 'order.g.dart';
 /// * [complete] 
 @BuiltValue()
 abstract class Order implements Built<Order, OrderBuilder> {
-    @BuiltValueField(wireName: r'id')
-    int? get id;
-    @BuiltValueField(wireName: r'petId')
-    int? get petId;
-    @BuiltValueField(wireName: r'quantity')
-    int? get quantity;
-    @BuiltValueField(wireName: r'shipDate')
-    DateTime? get shipDate;
-    /// Order Status
-    @BuiltValueField(wireName: r'status')
-    OrderStatusEnum? get status;
-    // enum statusEnum {  placed,  approved,  delivered,  };
-    @BuiltValueField(wireName: r'complete')
-    bool? get complete;
-
-
-    Order._();
-    
-    factory Order([void updates(OrderBuilder b)]) = _$Order;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(OrderBuilder b) => b
-        ..complete = false;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Order> get serializer => _$OrderSerializer();
+  @BuiltValueField(wireName: r'id')
+  int? get id;
 
+  @BuiltValueField(wireName: r'petId')
+  int? get petId;
 
+  @BuiltValueField(wireName: r'quantity')
+  int? get quantity;
+
+  @BuiltValueField(wireName: r'shipDate')
+  DateTime? get shipDate;
+
+  /// Order Status
+  @BuiltValueField(wireName: r'status')
+  OrderStatusEnum? get status;
+  // enum statusEnum {  placed,  approved,  delivered,  };
+
+  @BuiltValueField(wireName: r'complete')
+  bool? get complete;
+
+  Order._();
+
+  factory Order([void updates(OrderBuilder b)]) = _$Order;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(OrderBuilder b) => b
+      ..complete = false;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Order> get serializer => _$OrderSerializer();
 }
 
 class _$OrderSerializer implements PrimitiveSerializer<Order> {
-    @override
-    final Iterable<Type> types = const [Order, _$Order];
-
-    @override
-    final String wireName = r'Order';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Order object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(int));
-        }
-        if (object.petId != null) {
-            yield r'petId';
-            yield serializers.serialize(object.petId,
-                    specifiedType: const FullType(int));
-        }
-        if (object.quantity != null) {
-            yield r'quantity';
-            yield serializers.serialize(object.quantity,
-                    specifiedType: const FullType(int));
-        }
-        if (object.shipDate != null) {
-            yield r'shipDate';
-            yield serializers.serialize(object.shipDate,
-                    specifiedType: const FullType(DateTime));
-        }
-        if (object.status != null) {
-            yield r'status';
-            yield serializers.serialize(object.status,
-                    specifiedType: const FullType(OrderStatusEnum));
-        }
-        if (object.complete != null) {
-            yield r'complete';
-            yield serializers.serialize(object.complete,
-                    specifiedType: const FullType(bool));
-        }
+  @override
+  final Iterable<Type> types = const [Order, _$Order];
+
+  @override
+  final String wireName = r'Order';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Order object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Order object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.petId != null) {
+      yield r'petId';
+      yield serializers.serialize(
+        object.petId,
+        specifiedType: const FullType(int),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OrderBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.id = valueDes;
-                break;
-                case r'petId':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.petId = valueDes;
-                break;
-                case r'quantity':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.quantity = valueDes;
-                break;
-                case r'shipDate':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(DateTime)) as DateTime;
-                result.shipDate = valueDes;
-                break;
-                case r'status':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum;
-                result.status = valueDes;
-                break;
-                case r'complete':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(bool)) as bool;
-                result.complete = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.quantity != null) {
+      yield r'quantity';
+      yield serializers.serialize(
+        object.quantity,
+        specifiedType: const FullType(int),
+      );
     }
-}
-    
-    @override
-    Order deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = OrderBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.shipDate != null) {
+      yield r'shipDate';
+      yield serializers.serialize(
+        object.shipDate,
+        specifiedType: const FullType(DateTime),
+      );
+    }
+    if (object.status != null) {
+      yield r'status';
+      yield serializers.serialize(
+        object.status,
+        specifiedType: const FullType(OrderStatusEnum),
+      );
     }
+    if (object.complete != null) {
+      yield r'complete';
+      yield serializers.serialize(
+        object.complete,
+        specifiedType: const FullType(bool),
+      );
+    }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Order object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required OrderBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.id = valueDes;
+          break;
+        case r'petId':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.petId = valueDes;
+          break;
+        case r'quantity':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.quantity = valueDes;
+          break;
+        case r'shipDate':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(DateTime),
+          ) as DateTime;
+          result.shipDate = valueDes;
+          break;
+        case r'status':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(OrderStatusEnum),
+          ) as OrderStatusEnum;
+          result.status = valueDes;
+          break;
+        case r'complete':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(bool),
+          ) as bool;
+          result.complete = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  Order deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = OrderBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
 class OrderStatusEnum extends EnumClass {
 
   /// Order Status
@@ -179,4 +222,3 @@ class OrderStatusEnum extends EnumClass {
   static OrderStatusEnum valueOf(String name) => _$orderStatusEnumValueOf(name);
 }
 
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index a9328e4d14e..606ef37ee03 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'outer_composite.g.dart';
 
@@ -18,99 +15,129 @@ part 'outer_composite.g.dart';
 /// * [myBoolean] 
 @BuiltValue()
 abstract class OuterComposite implements Built<OuterComposite, OuterCompositeBuilder> {
-    @BuiltValueField(wireName: r'my_number')
-    num? get myNumber;
-    @BuiltValueField(wireName: r'my_string')
-    String? get myString;
-    @BuiltValueField(wireName: r'my_boolean')
-    bool? get myBoolean;
+  @BuiltValueField(wireName: r'my_number')
+  num? get myNumber;
 
+  @BuiltValueField(wireName: r'my_string')
+  String? get myString;
 
-    OuterComposite._();
-    
-    factory OuterComposite([void updates(OuterCompositeBuilder b)]) = _$OuterComposite;
+  @BuiltValueField(wireName: r'my_boolean')
+  bool? get myBoolean;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(OuterCompositeBuilder b) => b;
+  OuterComposite._();
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
+  factory OuterComposite([void updates(OuterCompositeBuilder b)]) = _$OuterComposite;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(OuterCompositeBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<OuterComposite> get serializer => _$OuterCompositeSerializer();
 }
 
 class _$OuterCompositeSerializer implements PrimitiveSerializer<OuterComposite> {
-    @override
-    final Iterable<Type> types = const [OuterComposite, _$OuterComposite];
-
-    @override
-    final String wireName = r'OuterComposite';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, OuterComposite object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.myNumber != null) {
-            yield r'my_number';
-            yield serializers.serialize(object.myNumber,
-                    specifiedType: const FullType(num));
-        }
-        if (object.myString != null) {
-            yield r'my_string';
-            yield serializers.serialize(object.myString,
-                    specifiedType: const FullType(String));
-        }
-        if (object.myBoolean != null) {
-            yield r'my_boolean';
-            yield serializers.serialize(object.myBoolean,
-                    specifiedType: const FullType(bool));
-        }
+  @override
+  final Iterable<Type> types = const [OuterComposite, _$OuterComposite];
+
+  @override
+  final String wireName = r'OuterComposite';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    OuterComposite object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.myNumber != null) {
+      yield r'my_number';
+      yield serializers.serialize(
+        object.myNumber,
+        specifiedType: const FullType(num),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, OuterComposite object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.myString != null) {
+      yield r'my_string';
+      yield serializers.serialize(
+        object.myString,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterCompositeBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'my_number':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(num)) as num;
-                result.myNumber = valueDes;
-                break;
-                case r'my_string':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.myString = valueDes;
-                break;
-                case r'my_boolean':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(bool)) as bool;
-                result.myBoolean = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.myBoolean != null) {
+      yield r'my_boolean';
+      yield serializers.serialize(
+        object.myBoolean,
+        specifiedType: const FullType(bool),
+      );
     }
-}
-    
-    @override
-    OuterComposite deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = OuterCompositeBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    OuterComposite object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required OuterCompositeBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'my_number':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(num),
+          ) as num;
+          result.myNumber = valueDes;
+          break;
+        case r'my_string':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.myString = valueDes;
+          break;
+        case r'my_boolean':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(bool),
+          ) as bool;
+          result.myBoolean = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  OuterComposite deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = OuterCompositeBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index 302ebb05cb5..643c70deea3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -5,9 +5,6 @@
 import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'outer_object_with_enum_property.g.dart';
 
@@ -17,74 +14,94 @@ part 'outer_object_with_enum_property.g.dart';
 /// * [value] 
 @BuiltValue()
 abstract class OuterObjectWithEnumProperty implements Built<OuterObjectWithEnumProperty, OuterObjectWithEnumPropertyBuilder> {
-    @BuiltValueField(wireName: r'value')
-    OuterEnumInteger get value;
-    // enum valueEnum {  0,  1,  2,  };
+  @BuiltValueField(wireName: r'value')
+  OuterEnumInteger get value;
+  // enum valueEnum {  0,  1,  2,  };
 
+  OuterObjectWithEnumProperty._();
 
-    OuterObjectWithEnumProperty._();
-    
-    factory OuterObjectWithEnumProperty([void updates(OuterObjectWithEnumPropertyBuilder b)]) = _$OuterObjectWithEnumProperty;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(OuterObjectWithEnumPropertyBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
+  factory OuterObjectWithEnumProperty([void updates(OuterObjectWithEnumPropertyBuilder b)]) = _$OuterObjectWithEnumProperty;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(OuterObjectWithEnumPropertyBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<OuterObjectWithEnumProperty> get serializer => _$OuterObjectWithEnumPropertySerializer();
 }
 
 class _$OuterObjectWithEnumPropertySerializer implements PrimitiveSerializer<OuterObjectWithEnumProperty> {
-    @override
-    final Iterable<Type> types = const [OuterObjectWithEnumProperty, _$OuterObjectWithEnumProperty];
-
-    @override
-    final String wireName = r'OuterObjectWithEnumProperty';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, OuterObjectWithEnumProperty object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        yield r'value';
-        yield serializers.serialize(object.value,
-                specifiedType: const FullType(OuterEnumInteger));
-    }
-
-    @override
-    Object serialize(Serializers serializers, OuterObjectWithEnumProperty object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
-    }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required OuterObjectWithEnumPropertyBuilder result, required List<Object?> unhandled}) {
+  @override
+  final Iterable<Type> types = const [OuterObjectWithEnumProperty, _$OuterObjectWithEnumProperty];
+
+  @override
+  final String wireName = r'OuterObjectWithEnumProperty';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    OuterObjectWithEnumProperty object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    yield r'value';
+    yield serializers.serialize(
+      object.value,
+      specifiedType: const FullType(OuterEnumInteger),
+    );
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    OuterObjectWithEnumProperty object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required OuterObjectWithEnumPropertyBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'value':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
-                result.value = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    OuterObjectWithEnumProperty deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = OuterObjectWithEnumPropertyBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'value':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(OuterEnumInteger),
+          ) as OuterEnumInteger;
+          result.value = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  OuterObjectWithEnumProperty deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = OuterObjectWithEnumPropertyBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index 75379f7de58..054146a2c91 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -7,9 +7,6 @@ import 'package:openapi/src/model/category.dart';
 import 'package:openapi/src/model/tag.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'pet.g.dart';
 
@@ -24,135 +21,181 @@ part 'pet.g.dart';
 /// * [status] - pet status in the store
 @BuiltValue()
 abstract class Pet implements Built<Pet, PetBuilder> {
-    @BuiltValueField(wireName: r'id')
-    int? get id;
-    @BuiltValueField(wireName: r'category')
-    Category? get category;
-    @BuiltValueField(wireName: r'name')
-    String get name;
-    @BuiltValueField(wireName: r'photoUrls')
-    BuiltSet<String> get photoUrls;
-    @BuiltValueField(wireName: r'tags')
-    BuiltList<Tag>? get tags;
-    /// pet status in the store
-    @BuiltValueField(wireName: r'status')
-    PetStatusEnum? get status;
-    // enum statusEnum {  available,  pending,  sold,  };
+  @BuiltValueField(wireName: r'id')
+  int? get id;
 
+  @BuiltValueField(wireName: r'category')
+  Category? get category;
 
-    Pet._();
-    
-    factory Pet([void updates(PetBuilder b)]) = _$Pet;
+  @BuiltValueField(wireName: r'name')
+  String get name;
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(PetBuilder b) => b;
+  @BuiltValueField(wireName: r'photoUrls')
+  BuiltSet<String> get photoUrls;
 
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Pet> get serializer => _$PetSerializer();
+  @BuiltValueField(wireName: r'tags')
+  BuiltList<Tag>? get tags;
 
+  /// pet status in the store
+  @BuiltValueField(wireName: r'status')
+  PetStatusEnum? get status;
+  // enum statusEnum {  available,  pending,  sold,  };
+
+  Pet._();
+
+  factory Pet([void updates(PetBuilder b)]) = _$Pet;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(PetBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Pet> get serializer => _$PetSerializer();
 }
 
 class _$PetSerializer implements PrimitiveSerializer<Pet> {
-    @override
-    final Iterable<Type> types = const [Pet, _$Pet];
-
-    @override
-    final String wireName = r'Pet';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Pet object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(int));
-        }
-        if (object.category != null) {
-            yield r'category';
-            yield serializers.serialize(object.category,
-                    specifiedType: const FullType(Category));
-        }
-        yield r'name';
-        yield serializers.serialize(object.name,
-                specifiedType: const FullType(String));
-        yield r'photoUrls';
-        yield serializers.serialize(object.photoUrls,
-                specifiedType: const FullType(BuiltSet, [FullType(String)]));
-        if (object.tags != null) {
-            yield r'tags';
-            yield serializers.serialize(object.tags,
-                    specifiedType: const FullType(BuiltList, [FullType(Tag)]));
-        }
-        if (object.status != null) {
-            yield r'status';
-            yield serializers.serialize(object.status,
-                    specifiedType: const FullType(PetStatusEnum));
-        }
+  @override
+  final Iterable<Type> types = const [Pet, _$Pet];
+
+  @override
+  final String wireName = r'Pet';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Pet object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Pet object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.category != null) {
+      yield r'category';
+      yield serializers.serialize(
+        object.category,
+        specifiedType: const FullType(Category),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required PetBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.id = valueDes;
-                break;
-                case r'category':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(Category)) as Category;
-                result.category.replace(valueDes);
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-                case r'photoUrls':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltSet, [FullType(String)])) as BuiltSet<String>;
-                result.photoUrls.replace(valueDes);
-                break;
-                case r'tags':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList<Tag>;
-                result.tags.replace(valueDes);
-                break;
-                case r'status':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum;
-                result.status = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    yield r'name';
+    yield serializers.serialize(
+      object.name,
+      specifiedType: const FullType(String),
+    );
+    yield r'photoUrls';
+    yield serializers.serialize(
+      object.photoUrls,
+      specifiedType: const FullType(BuiltSet, [FullType(String)]),
+    );
+    if (object.tags != null) {
+      yield r'tags';
+      yield serializers.serialize(
+        object.tags,
+        specifiedType: const FullType(BuiltList, [FullType(Tag)]),
+      );
     }
-}
-    
-    @override
-    Pet deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = PetBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.status != null) {
+      yield r'status';
+      yield serializers.serialize(
+        object.status,
+        specifiedType: const FullType(PetStatusEnum),
+      );
+    }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Pet object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required PetBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.id = valueDes;
+          break;
+        case r'category':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(Category),
+          ) as Category;
+          result.category.replace(valueDes);
+          break;
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        case r'photoUrls':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltSet, [FullType(String)]),
+          ) as BuiltSet<String>;
+          result.photoUrls.replace(valueDes);
+          break;
+        case r'tags':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(BuiltList, [FullType(Tag)]),
+          ) as BuiltList<Tag>;
+          result.tags.replace(valueDes);
+          break;
+        case r'status':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(PetStatusEnum),
+          ) as PetStatusEnum;
+          result.status = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Pet deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = PetBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
 class PetStatusEnum extends EnumClass {
 
   /// pet status in the store
@@ -176,4 +219,3 @@ class PetStatusEnum extends EnumClass {
   static PetStatusEnum valueOf(String name) => _$petStatusEnumValueOf(name);
 }
 
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index b3a0338e647..f25f60a550c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'read_only_first.g.dart';
 
@@ -17,87 +14,112 @@ part 'read_only_first.g.dart';
 /// * [baz] 
 @BuiltValue()
 abstract class ReadOnlyFirst implements Built<ReadOnlyFirst, ReadOnlyFirstBuilder> {
-    @BuiltValueField(wireName: r'bar')
-    String? get bar;
-    @BuiltValueField(wireName: r'baz')
-    String? get baz;
+  @BuiltValueField(wireName: r'bar')
+  String? get bar;
 
+  @BuiltValueField(wireName: r'baz')
+  String? get baz;
 
-    ReadOnlyFirst._();
-    
-    factory ReadOnlyFirst([void updates(ReadOnlyFirstBuilder b)]) = _$ReadOnlyFirst;
+  ReadOnlyFirst._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(ReadOnlyFirstBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
+  factory ReadOnlyFirst([void updates(ReadOnlyFirstBuilder b)]) = _$ReadOnlyFirst;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(ReadOnlyFirstBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<ReadOnlyFirst> get serializer => _$ReadOnlyFirstSerializer();
 }
 
 class _$ReadOnlyFirstSerializer implements PrimitiveSerializer<ReadOnlyFirst> {
-    @override
-    final Iterable<Type> types = const [ReadOnlyFirst, _$ReadOnlyFirst];
-
-    @override
-    final String wireName = r'ReadOnlyFirst';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, ReadOnlyFirst object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.bar != null) {
-            yield r'bar';
-            yield serializers.serialize(object.bar,
-                    specifiedType: const FullType(String));
-        }
-        if (object.baz != null) {
-            yield r'baz';
-            yield serializers.serialize(object.baz,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [ReadOnlyFirst, _$ReadOnlyFirst];
+
+  @override
+  final String wireName = r'ReadOnlyFirst';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    ReadOnlyFirst object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.bar != null) {
+      yield r'bar';
+      yield serializers.serialize(
+        object.bar,
+        specifiedType: const FullType(String),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, ReadOnlyFirst object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.baz != null) {
+      yield r'baz';
+      yield serializers.serialize(
+        object.baz,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required ReadOnlyFirstBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    ReadOnlyFirst object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required ReadOnlyFirstBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'bar':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.bar = valueDes;
-                break;
-                case r'baz':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.baz = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'bar':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.bar = valueDes;
+          break;
+        case r'baz':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.baz = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  ReadOnlyFirst deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = ReadOnlyFirstBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    ReadOnlyFirst deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = ReadOnlyFirstBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index 462ee255e90..a8acd264fa5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'special_model_name.g.dart';
 
@@ -16,75 +13,95 @@ part 'special_model_name.g.dart';
 /// * [dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket] 
 @BuiltValue()
 abstract class SpecialModelName implements Built<SpecialModelName, SpecialModelNameBuilder> {
-    @BuiltValueField(wireName: r'$special[property.name]')
-    int? get dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket;
+  @BuiltValueField(wireName: r'$special[property.name]')
+  int? get dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket;
 
+  SpecialModelName._();
 
-    SpecialModelName._();
-    
-    factory SpecialModelName([void updates(SpecialModelNameBuilder b)]) = _$SpecialModelName;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(SpecialModelNameBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
+  factory SpecialModelName([void updates(SpecialModelNameBuilder b)]) = _$SpecialModelName;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(SpecialModelNameBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<SpecialModelName> get serializer => _$SpecialModelNameSerializer();
 }
 
 class _$SpecialModelNameSerializer implements PrimitiveSerializer<SpecialModelName> {
-    @override
-    final Iterable<Type> types = const [SpecialModelName, _$SpecialModelName];
-
-    @override
-    final String wireName = r'SpecialModelName';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, SpecialModelName object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket != null) {
-            yield r'$special[property.name]';
-            yield serializers.serialize(object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket,
-                    specifiedType: const FullType(int));
-        }
-    }
-
-    @override
-    Object serialize(Serializers serializers, SpecialModelName object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  @override
+  final Iterable<Type> types = const [SpecialModelName, _$SpecialModelName];
+
+  @override
+  final String wireName = r'SpecialModelName';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    SpecialModelName object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket != null) {
+      yield r'$special[property.name]';
+      yield serializers.serialize(
+        object.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket,
+        specifiedType: const FullType(int),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required SpecialModelNameBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    SpecialModelName object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required SpecialModelNameBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'$special[property.name]':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
-    }
-}
-    
-    @override
-    SpecialModelName deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = SpecialModelNameBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'$special[property.name]':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  SpecialModelName deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = SpecialModelNameBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index 12f9b1e8c34..7b5a857c07c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'tag.g.dart';
 
@@ -17,87 +14,112 @@ part 'tag.g.dart';
 /// * [name] 
 @BuiltValue()
 abstract class Tag implements Built<Tag, TagBuilder> {
-    @BuiltValueField(wireName: r'id')
-    int? get id;
-    @BuiltValueField(wireName: r'name')
-    String? get name;
+  @BuiltValueField(wireName: r'id')
+  int? get id;
 
+  @BuiltValueField(wireName: r'name')
+  String? get name;
 
-    Tag._();
-    
-    factory Tag([void updates(TagBuilder b)]) = _$Tag;
+  Tag._();
 
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(TagBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<Tag> get serializer => _$TagSerializer();
+  factory Tag([void updates(TagBuilder b)]) = _$Tag;
 
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(TagBuilder b) => b;
 
+  @BuiltValueSerializer(custom: true)
+  static Serializer<Tag> get serializer => _$TagSerializer();
 }
 
 class _$TagSerializer implements PrimitiveSerializer<Tag> {
-    @override
-    final Iterable<Type> types = const [Tag, _$Tag];
-
-    @override
-    final String wireName = r'Tag';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, Tag object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(int));
-        }
-        if (object.name != null) {
-            yield r'name';
-            yield serializers.serialize(object.name,
-                    specifiedType: const FullType(String));
-        }
+  @override
+  final Iterable<Type> types = const [Tag, _$Tag];
+
+  @override
+  final String wireName = r'Tag';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    Tag object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, Tag object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.name != null) {
+      yield r'name';
+      yield serializers.serialize(
+        object.name,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required TagBuilder result, required List<Object?> unhandled}) {
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    Tag object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required TagBuilder result,
+    required List<Object?> unhandled,
+  }) {
     for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.id = valueDes;
-                break;
-                case r'name':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.name = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.id = valueDes;
+          break;
+        case r'name':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.name = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
     }
+  }
+
+  @override
+  Tag deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = TagBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
-    
-    @override
-    Tag deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = TagBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
-    }
-}
-
-
-
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index 3a3e3039056..8c9548d5fe8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -4,9 +4,6 @@
 
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
-import 'package:one_of/one_of.dart';
-import 'package:one_of/any_of.dart';
-// ignore_for_file: unused_element, unused_import
 
 part 'user.g.dart';
 
@@ -23,160 +20,215 @@ part 'user.g.dart';
 /// * [userStatus] - User Status
 @BuiltValue()
 abstract class User implements Built<User, UserBuilder> {
-    @BuiltValueField(wireName: r'id')
-    int? get id;
-    @BuiltValueField(wireName: r'username')
-    String? get username;
-    @BuiltValueField(wireName: r'firstName')
-    String? get firstName;
-    @BuiltValueField(wireName: r'lastName')
-    String? get lastName;
-    @BuiltValueField(wireName: r'email')
-    String? get email;
-    @BuiltValueField(wireName: r'password')
-    String? get password;
-    @BuiltValueField(wireName: r'phone')
-    String? get phone;
-    /// User Status
-    @BuiltValueField(wireName: r'userStatus')
-    int? get userStatus;
-
-
-    User._();
-    
-    factory User([void updates(UserBuilder b)]) = _$User;
-
-    @BuiltValueHook(initializeBuilder: true)
-    static void _defaults(UserBuilder b) => b;
-
-    @BuiltValueSerializer(custom: true)
-    static Serializer<User> get serializer => _$UserSerializer();
+  @BuiltValueField(wireName: r'id')
+  int? get id;
 
+  @BuiltValueField(wireName: r'username')
+  String? get username;
 
+  @BuiltValueField(wireName: r'firstName')
+  String? get firstName;
+
+  @BuiltValueField(wireName: r'lastName')
+  String? get lastName;
+
+  @BuiltValueField(wireName: r'email')
+  String? get email;
+
+  @BuiltValueField(wireName: r'password')
+  String? get password;
+
+  @BuiltValueField(wireName: r'phone')
+  String? get phone;
+
+  /// User Status
+  @BuiltValueField(wireName: r'userStatus')
+  int? get userStatus;
+
+  User._();
+
+  factory User([void updates(UserBuilder b)]) = _$User;
+
+  @BuiltValueHook(initializeBuilder: true)
+  static void _defaults(UserBuilder b) => b;
+
+  @BuiltValueSerializer(custom: true)
+  static Serializer<User> get serializer => _$UserSerializer();
 }
 
 class _$UserSerializer implements PrimitiveSerializer<User> {
-    @override
-    final Iterable<Type> types = const [User, _$User];
-
-    @override
-    final String wireName = r'User';
-
-    Iterable<Object?> _serializeProperties(Serializers serializers, User object,
-        {FullType specifiedType = FullType.unspecified}) sync* {        
-        if (object.id != null) {
-            yield r'id';
-            yield serializers.serialize(object.id,
-                    specifiedType: const FullType(int));
-        }
-        if (object.username != null) {
-            yield r'username';
-            yield serializers.serialize(object.username,
-                    specifiedType: const FullType(String));
-        }
-        if (object.firstName != null) {
-            yield r'firstName';
-            yield serializers.serialize(object.firstName,
-                    specifiedType: const FullType(String));
-        }
-        if (object.lastName != null) {
-            yield r'lastName';
-            yield serializers.serialize(object.lastName,
-                    specifiedType: const FullType(String));
-        }
-        if (object.email != null) {
-            yield r'email';
-            yield serializers.serialize(object.email,
-                    specifiedType: const FullType(String));
-        }
-        if (object.password != null) {
-            yield r'password';
-            yield serializers.serialize(object.password,
-                    specifiedType: const FullType(String));
-        }
-        if (object.phone != null) {
-            yield r'phone';
-            yield serializers.serialize(object.phone,
-                    specifiedType: const FullType(String));
-        }
-        if (object.userStatus != null) {
-            yield r'userStatus';
-            yield serializers.serialize(object.userStatus,
-                    specifiedType: const FullType(int));
-        }
+  @override
+  final Iterable<Type> types = const [User, _$User];
+
+  @override
+  final String wireName = r'User';
+
+  Iterable<Object?> _serializeProperties(
+    Serializers serializers,
+    User object, {
+    FullType specifiedType = FullType.unspecified,
+  }) sync* {
+    if (object.id != null) {
+      yield r'id';
+      yield serializers.serialize(
+        object.id,
+        specifiedType: const FullType(int),
+      );
     }
-
-    @override
-    Object serialize(Serializers serializers, User object,
-        {FullType specifiedType = FullType.unspecified}) {
-        return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+    if (object.username != null) {
+      yield r'username';
+      yield serializers.serialize(
+        object.username,
+        specifiedType: const FullType(String),
+      );
     }
-
-    void _deserializeProperties(Serializers serializers, Object serialized,
-    {FullType specifiedType = FullType.unspecified, required List<Object?> serializedList,required UserBuilder result, required List<Object?> unhandled}) {
-    for (var i = 0; i < serializedList.length; i += 2) {
-        final key = serializedList[i] as String;
-        final value = serializedList[i + 1];
-        switch (key) {
-                case r'id':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.id = valueDes;
-                break;
-                case r'username':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.username = valueDes;
-                break;
-                case r'firstName':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.firstName = valueDes;
-                break;
-                case r'lastName':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.lastName = valueDes;
-                break;
-                case r'email':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.email = valueDes;
-                break;
-                case r'password':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.password = valueDes;
-                break;
-                case r'phone':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(String)) as String;
-                result.phone = valueDes;
-                break;
-                case r'userStatus':
-                final valueDes = serializers.deserialize(value,
-                    specifiedType: const FullType(int)) as int;
-                result.userStatus = valueDes;
-                break;
-            default:
-                unhandled.add(key);
-                unhandled.add(value);
-                break;
-        }
+    if (object.firstName != null) {
+      yield r'firstName';
+      yield serializers.serialize(
+        object.firstName,
+        specifiedType: const FullType(String),
+      );
     }
-}
-    
-    @override
-    User deserialize(Serializers serializers, Object serialized,
-        {FullType specifiedType = FullType.unspecified}) {
-        final result = UserBuilder();
-        final serializedList = (serialized as Iterable<Object?>).toList();        
-        final unhandled = <Object?>[];
-        _deserializeProperties(serializers, serialized, specifiedType: specifiedType, serializedList: serializedList, unhandled: unhandled, result: result);        
-        return result.build();
+    if (object.lastName != null) {
+      yield r'lastName';
+      yield serializers.serialize(
+        object.lastName,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.email != null) {
+      yield r'email';
+      yield serializers.serialize(
+        object.email,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.password != null) {
+      yield r'password';
+      yield serializers.serialize(
+        object.password,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.phone != null) {
+      yield r'phone';
+      yield serializers.serialize(
+        object.phone,
+        specifiedType: const FullType(String),
+      );
+    }
+    if (object.userStatus != null) {
+      yield r'userStatus';
+      yield serializers.serialize(
+        object.userStatus,
+        specifiedType: const FullType(int),
+      );
     }
+  }
+
+  @override
+  Object serialize(
+    Serializers serializers,
+    User object, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
+  }
+
+  void _deserializeProperties(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+    required List<Object?> serializedList,
+    required UserBuilder result,
+    required List<Object?> unhandled,
+  }) {
+    for (var i = 0; i < serializedList.length; i += 2) {
+      final key = serializedList[i] as String;
+      final value = serializedList[i + 1];
+      switch (key) {
+        case r'id':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.id = valueDes;
+          break;
+        case r'username':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.username = valueDes;
+          break;
+        case r'firstName':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.firstName = valueDes;
+          break;
+        case r'lastName':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.lastName = valueDes;
+          break;
+        case r'email':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.email = valueDes;
+          break;
+        case r'password':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.password = valueDes;
+          break;
+        case r'phone':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(String),
+          ) as String;
+          result.phone = valueDes;
+          break;
+        case r'userStatus':
+          final valueDes = serializers.deserialize(
+            value,
+            specifiedType: const FullType(int),
+          ) as int;
+          result.userStatus = valueDes;
+          break;
+        default:
+          unhandled.add(key);
+          unhandled.add(value);
+          break;
+      }
+    }
+  }
+
+  @override
+  User deserialize(
+    Serializers serializers,
+    Object serialized, {
+    FullType specifiedType = FullType.unspecified,
+  }) {
+    final result = UserBuilder();
+    final serializedList = (serialized as Iterable<Object?>).toList();
+    final unhandled = <Object?>[];
+    _deserializeProperties(
+      serializers,
+      serialized,
+      specifiedType: specifiedType,
+      serializedList: serializedList,
+      unhandled: unhandled,
+      result: result,
+    );
+    return result.build();
+  }
 }
 
-
-
-
-- 
GitLab


From d7215eb2e08f31e70da7e946d9cd0b1a86e7bba7 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 03:36:06 +0200
Subject: [PATCH 34/42] fix enums not getting assigned correctly

---
 .../openapitools/codegen/languages/DartDioClientCodegen.java  | 1 +
 .../dio/serialization/built_value/class_inline_enums.mustache | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 9faeb3cfa4b..711a111be6a 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -386,6 +386,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
                 CodegenModel relatedModel = objs.get(type);
                 //fill the property's VendorExtensions with the type's VendorExtensions
                 prop.getVendorExtensions().put(kIsParent, relatedModel.getVendorExtensions().get(kIsParent));
+                prop.isEnum = relatedModel.isEnum;
                 
             }            
         }
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
index 1f70cd903d8..7ff55f0bd0a 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
@@ -6,7 +6,7 @@
 }}
 {{#vars}}
     {{^isModel}}
-    {{#isEnum}}
+    {{#enumName}} {{! enumName only exists for inline enums }}
         {{^isContainer}}
 
 {{>serialization/built_value/enum_inline}}
@@ -17,6 +17,6 @@
 {{>serialization/built_value/enum_inline}}
             {{/mostInnerItems}}
         {{/isContainer}}
-    {{/isEnum}}
+    {{/enumName}}
     {{/isModel}}
 {{/vars}}
\ No newline at end of file
-- 
GitLab


From fe90f63e98e470a19544166eff60c473c5793c9d Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 03:42:32 +0200
Subject: [PATCH 35/42] update samples

---
 .../dio/serialization/built_value/class_inline_enums.mustache  | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
index 7ff55f0bd0a..1105c1b70b1 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_inline_enums.mustache
@@ -3,10 +3,11 @@
     isEnum is only true for inline variables that are enums.
     If an enum is declared as a definition, isEnum is false and the enum is generated from the
     enum.mustache template.
+    enumName only exists for inline enums
 }}
 {{#vars}}
     {{^isModel}}
-    {{#enumName}} {{! enumName only exists for inline enums }}
+    {{#enumName}}
         {{^isContainer}}
 
 {{>serialization/built_value/enum_inline}}
-- 
GitLab


From e51eb1fd9fbe6627459af13212e034dfa1310569 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:01:22 +0200
Subject: [PATCH 36/42] fixed typo

---
 .../dio/serialization/built_value/class_serializer.mustache     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
index d2ab7963036..d3b3d8916ca 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_serializer.mustache
@@ -130,7 +130,7 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
       case '{{mappingName}}':
         oneOfResult = serializers.deserialize(
           oneOfDataSrc,
-          specifiedType: FullType({{modelName}}).
+          specifiedType: FullType({{modelName}}),
         ) as {{modelName}};
         oneOfType = {{modelName}};
         break;
-- 
GitLab


From 2fd0e5d92cb278923fc7e2ceb2c04fc383b9864c Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:01:27 +0200
Subject: [PATCH 37/42] regen samples

---
 .../lib/src/model/bar_ref_or_value.dart                    | 4 ++--
 .../lib/src/model/foo_ref_or_value.dart                    | 4 ++--
 .../petstore_client_lib_fake/lib/src/model/animal.dart     | 7 ++++---
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
index a097cc52ec3..3e26b28a71a 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
@@ -85,14 +85,14 @@ class _$BarRefOrValueSerializer implements PrimitiveSerializer<BarRefOrValue> {
       case 'Bar':
         oneOfResult = serializers.deserialize(
           oneOfDataSrc,
-          specifiedType: FullType(Bar).
+          specifiedType: FullType(Bar),
         ) as Bar;
         oneOfType = Bar;
         break;
       case 'BarRef':
         oneOfResult = serializers.deserialize(
           oneOfDataSrc,
-          specifiedType: FullType(BarRef).
+          specifiedType: FullType(BarRef),
         ) as BarRef;
         oneOfType = BarRef;
         break;
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
index 7ed1bf376f6..6c4eccb64ab 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
@@ -85,14 +85,14 @@ class _$FooRefOrValueSerializer implements PrimitiveSerializer<FooRefOrValue> {
       case 'Foo':
         oneOfResult = serializers.deserialize(
           oneOfDataSrc,
-          specifiedType: FullType(Foo).
+          specifiedType: FullType(Foo),
         ) as Foo;
         oneOfType = Foo;
         break;
       case 'FooRef':
         oneOfResult = serializers.deserialize(
           oneOfDataSrc,
-          specifiedType: FullType(FooRef).
+          specifiedType: FullType(FooRef),
         ) as FooRef;
         oneOfType = FooRef;
         break;
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index b5ae9526213..fcbb9127b0b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -12,10 +12,10 @@ part 'animal.g.dart';
 /// Animal
 ///
 /// Properties:
-/// * [className]
-/// * [color]
+/// * [className] 
+/// * [color] 
 @BuiltValue(instantiable: false)
-abstract class Animal {
+abstract class Animal  {
   @BuiltValueField(wireName: r'className')
   String get className;
 
@@ -178,3 +178,4 @@ class _$$AnimalSerializer implements PrimitiveSerializer<$Animal> {
     return result.build();
   }
 }
+
-- 
GitLab


From e6c85495c018514a3b2e7fc3394cf50163a7e305 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:09:45 +0200
Subject: [PATCH 38/42] remove repeating imports

---
 .../libraries/dio/serialization/built_value/class.mustache  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
index c1fbc10496c..a8a1339c630 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache
@@ -1,7 +1,7 @@
 import 'package:built_value/built_value.dart';
-import 'package:built_value/serializer.dart';{{#oneOf}}
-import 'package:one_of/one_of.dart';{{/oneOf}}{{#anyOf}}
-import 'package:one_of/any_of.dart';{{/anyOf}}
+import 'package:built_value/serializer.dart';{{#oneOf}}{{#-first}}
+import 'package:one_of/one_of.dart';{{/-first}}{{/oneOf}}{{#anyOf}}{{#-first}}
+import 'package:one_of/any_of.dart';{{/-first}}{{/anyOf}}
 
 {{#imports}}
 {{/imports}}
-- 
GitLab


From 4c2d432b17514dbbf03cff22087b102863b16b7d Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:10:42 +0200
Subject: [PATCH 39/42] regen samples

---
 .../client/petstore/dart-dio/oneof/lib/src/model/fruit.dart      | 1 -
 .../lib/src/model/bar_ref_or_value.dart                          | 1 -
 .../lib/src/model/foo_ref_or_value.dart                          | 1 -
 .../petstore/dart-dio/oneof_primitive/lib/src/model/example.dart | 1 -
 4 files changed, 4 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
index 2b648c0faa1..9db348ac116 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
@@ -7,7 +7,6 @@ import 'package:openapi/src/model/banana.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/one_of.dart';
 
 part 'fruit.g.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
index 3e26b28a71a..39fa7434a5f 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
@@ -7,7 +7,6 @@ import 'package:openapi/src/model/bar.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/one_of.dart';
 
 part 'bar_ref_or_value.g.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
index 6c4eccb64ab..6a3650a0a2f 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
@@ -7,7 +7,6 @@ import 'package:openapi/src/model/foo_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/one_of.dart';
 
 part 'foo_ref_or_value.g.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
index a89af1282fa..0299ab911d6 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
@@ -7,7 +7,6 @@ import 'dart:core';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 import 'package:one_of/one_of.dart';
-import 'package:one_of/one_of.dart';
 
 part 'example.g.dart';
 
-- 
GitLab


From 0935ed69d95db5b93dc0860373b620f86f4e4417 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:16:59 +0200
Subject: [PATCH 40/42] ignore unused_element warning

---
 .../src/main/resources/dart/libraries/dio/model.mustache         | 1 +
 .../client/petstore/dart-dio/oneof/lib/src/model/apple.dart      | 1 +
 .../client/petstore/dart-dio/oneof/lib/src/model/banana.dart     | 1 +
 .../client/petstore/dart-dio/oneof/lib/src/model/fruit.dart      | 1 +
 .../lib/src/model/addressable.dart                               | 1 +
 .../oneof_polymorphism_and_inheritance/lib/src/model/bar.dart    | 1 +
 .../lib/src/model/bar_create.dart                                | 1 +
 .../lib/src/model/bar_ref.dart                                   | 1 +
 .../lib/src/model/bar_ref_or_value.dart                          | 1 +
 .../oneof_polymorphism_and_inheritance/lib/src/model/entity.dart | 1 +
 .../lib/src/model/entity_ref.dart                                | 1 +
 .../lib/src/model/extensible.dart                                | 1 +
 .../oneof_polymorphism_and_inheritance/lib/src/model/foo.dart    | 1 +
 .../lib/src/model/foo_ref.dart                                   | 1 +
 .../lib/src/model/foo_ref_or_value.dart                          | 1 +
 .../oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart  | 1 +
 .../oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart  | 1 +
 .../lib/src/model/pizza_speziale.dart                            | 1 +
 .../petstore/dart-dio/oneof_primitive/lib/src/model/child.dart   | 1 +
 .../petstore/dart-dio/oneof_primitive/lib/src/model/example.dart | 1 +
 .../lib/src/model/additional_properties_class.dart               | 1 +
 .../lib/src/model/all_of_with_single_ref.dart                    | 1 +
 .../lib/src/model/animal.dart                                    | 1 +
 .../lib/src/model/api_response.dart                              | 1 +
 .../lib/src/model/array_of_array_of_number_only.dart             | 1 +
 .../lib/src/model/array_of_number_only.dart                      | 1 +
 .../lib/src/model/array_test.dart                                | 1 +
 .../lib/src/model/capitalization.dart                            | 1 +
 .../lib/src/model/cat.dart                                       | 1 +
 .../lib/src/model/cat_all_of.dart                                | 1 +
 .../lib/src/model/category.dart                                  | 1 +
 .../lib/src/model/class_model.dart                               | 1 +
 .../lib/src/model/deprecated_object.dart                         | 1 +
 .../lib/src/model/dog.dart                                       | 1 +
 .../lib/src/model/dog_all_of.dart                                | 1 +
 .../lib/src/model/enum_arrays.dart                               | 1 +
 .../lib/src/model/enum_test.dart                                 | 1 +
 .../lib/src/model/file_schema_test_class.dart                    | 1 +
 .../lib/src/model/foo.dart                                       | 1 +
 .../lib/src/model/foo_get_default_response.dart                  | 1 +
 .../lib/src/model/format_test.dart                               | 1 +
 .../lib/src/model/has_only_read_only.dart                        | 1 +
 .../lib/src/model/health_check_result.dart                       | 1 +
 .../lib/src/model/map_test.dart                                  | 1 +
 .../model/mixed_properties_and_additional_properties_class.dart  | 1 +
 .../lib/src/model/model200_response.dart                         | 1 +
 .../lib/src/model/model_client.dart                              | 1 +
 .../lib/src/model/model_enum_class.dart                          | 1 +
 .../lib/src/model/model_file.dart                                | 1 +
 .../lib/src/model/model_list.dart                                | 1 +
 .../lib/src/model/model_return.dart                              | 1 +
 .../lib/src/model/name.dart                                      | 1 +
 .../lib/src/model/nullable_class.dart                            | 1 +
 .../lib/src/model/number_only.dart                               | 1 +
 .../lib/src/model/object_with_deprecated_fields.dart             | 1 +
 .../lib/src/model/order.dart                                     | 1 +
 .../lib/src/model/outer_composite.dart                           | 1 +
 .../lib/src/model/outer_enum.dart                                | 1 +
 .../lib/src/model/outer_enum_default_value.dart                  | 1 +
 .../lib/src/model/outer_enum_integer.dart                        | 1 +
 .../lib/src/model/outer_enum_integer_default_value.dart          | 1 +
 .../lib/src/model/outer_object_with_enum_property.dart           | 1 +
 .../lib/src/model/pet.dart                                       | 1 +
 .../lib/src/model/read_only_first.dart                           | 1 +
 .../lib/src/model/single_ref_type.dart                           | 1 +
 .../lib/src/model/special_model_name.dart                        | 1 +
 .../lib/src/model/tag.dart                                       | 1 +
 .../lib/src/model/user.dart                                      | 1 +
 .../lib/src/model/additional_properties_class.dart               | 1 +
 .../lib/src/model/all_of_with_single_ref.dart                    | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart  | 1 +
 .../petstore_client_lib_fake/lib/src/model/api_response.dart     | 1 +
 .../lib/src/model/array_of_array_of_number_only.dart             | 1 +
 .../lib/src/model/array_of_number_only.dart                      | 1 +
 .../petstore_client_lib_fake/lib/src/model/array_test.dart       | 1 +
 .../petstore_client_lib_fake/lib/src/model/capitalization.dart   | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart     | 1 +
 .../petstore_client_lib_fake/lib/src/model/cat_all_of.dart       | 1 +
 .../petstore_client_lib_fake/lib/src/model/category.dart         | 1 +
 .../petstore_client_lib_fake/lib/src/model/class_model.dart      | 1 +
 .../lib/src/model/deprecated_object.dart                         | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart     | 1 +
 .../petstore_client_lib_fake/lib/src/model/dog_all_of.dart       | 1 +
 .../petstore_client_lib_fake/lib/src/model/enum_arrays.dart      | 1 +
 .../petstore_client_lib_fake/lib/src/model/enum_test.dart        | 1 +
 .../lib/src/model/file_schema_test_class.dart                    | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart     | 1 +
 .../lib/src/model/foo_get_default_response.dart                  | 1 +
 .../petstore_client_lib_fake/lib/src/model/format_test.dart      | 1 +
 .../lib/src/model/has_only_read_only.dart                        | 1 +
 .../lib/src/model/health_check_result.dart                       | 1 +
 .../petstore_client_lib_fake/lib/src/model/map_test.dart         | 1 +
 .../model/mixed_properties_and_additional_properties_class.dart  | 1 +
 .../lib/src/model/model200_response.dart                         | 1 +
 .../petstore_client_lib_fake/lib/src/model/model_client.dart     | 1 +
 .../petstore_client_lib_fake/lib/src/model/model_enum_class.dart | 1 +
 .../petstore_client_lib_fake/lib/src/model/model_file.dart       | 1 +
 .../petstore_client_lib_fake/lib/src/model/model_list.dart       | 1 +
 .../petstore_client_lib_fake/lib/src/model/model_return.dart     | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/name.dart    | 1 +
 .../petstore_client_lib_fake/lib/src/model/nullable_class.dart   | 1 +
 .../petstore_client_lib_fake/lib/src/model/number_only.dart      | 1 +
 .../lib/src/model/object_with_deprecated_fields.dart             | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/order.dart   | 1 +
 .../petstore_client_lib_fake/lib/src/model/outer_composite.dart  | 1 +
 .../petstore_client_lib_fake/lib/src/model/outer_enum.dart       | 1 +
 .../lib/src/model/outer_enum_default_value.dart                  | 1 +
 .../lib/src/model/outer_enum_integer.dart                        | 1 +
 .../lib/src/model/outer_enum_integer_default_value.dart          | 1 +
 .../lib/src/model/outer_object_with_enum_property.dart           | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart     | 1 +
 .../petstore_client_lib_fake/lib/src/model/read_only_first.dart  | 1 +
 .../petstore_client_lib_fake/lib/src/model/single_ref_type.dart  | 1 +
 .../lib/src/model/special_model_name.dart                        | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart     | 1 +
 .../dart-dio/petstore_client_lib_fake/lib/src/model/user.dart    | 1 +
 116 files changed, 116 insertions(+)

diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/model.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/model.mustache
index 5fdbb1b77c8..1917decaf6c 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/model.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/model.mustache
@@ -1,4 +1,5 @@
 {{>header}}
+// ignore_for_file: unused_element
 {{#models}}
     {{#model}}
         {{#imports}}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
index f0a1fda9da8..02ca94190b9 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/apple.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
index 483def2cd19..bf2d632ee11 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/banana.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
index 9db348ac116..11f8cfa7050 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/lib/src/model/fruit.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/apple.dart';
 import 'package:openapi/src/model/banana.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
index c77343f919c..e0311b6595b 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/addressable.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
index b5c91a7cfbf..9c52802b84a 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/foo_ref_or_value.dart';
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
index 76e772b3325..ebbce357782 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/foo_ref_or_value.dart';
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
index 991923a6d5d..bb4965bea82 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/entity_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
index 39fa7434a5f..09d7b0b99c6 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/bar_ref.dart';
 import 'package:openapi/src/model/bar.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
index dbb76e6a051..1a83a5d6b50 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/extensible.dart';
 import 'package:openapi/src/model/pizza_speziale.dart';
 import 'package:openapi/src/model/foo.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
index dab05e4c597..278aa92276c 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/extensible.dart';
 import 'package:openapi/src/model/bar_ref.dart';
 import 'package:openapi/src/model/addressable.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
index 49bff51b783..2423fb27641 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/extensible.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
index c8986b5d524..efb327dd664 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
index eff49bd2fd7..dd05a2d4787 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/entity_ref.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
index 6a3650a0a2f..f512292196a 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/foo.dart';
 import 'package:openapi/src/model/foo_ref.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
index 4769a57c012..5c5ef72537c 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
index 1a2028bbfcb..866daab885e 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/pizza_speziale.dart';
 import 'package:openapi/src/model/entity.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
index 492cf83beac..7f17257e503 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/pizza.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
index 106f1e45f24..987b52ca724 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/child.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
index 0299ab911d6..799b77e4e17 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/model/example.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/child.dart';
 import 'dart:core';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart
index d45eeef83d9..a3d4df084be 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'additional_properties_class.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart
index 7ee9944f7f0..dd3a19e9d93 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/single_ref_type.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart
index 26090b10920..22a196ce7d7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'animal.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart
index ac22fd59d69..c6700e2d39c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'api_response.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart
index dbae180528b..7372be1583f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'array_of_array_of_number_only.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart
index a203361bcc3..d538bb312fd 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'array_of_number_only.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart
index 1f1720b2b66..30a6ec8a8b7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/read_only_first.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart
index d40127b68a9..707cb05a040 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'capitalization.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
index 9d79ad48220..0b176faf313 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/animal.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart
index 55e2a10832f..abb9dbc25e5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'cat_all_of.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart
index 6bc66f34418..b94c6157990 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'category.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart
index 015d2d0297a..01837bfcca9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'class_model.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart
index 9240f1160d0..b97e0637258 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'deprecated_object.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
index 62527c046b3..a049d0479fb 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/animal.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart
index d5ceabdc3a1..19bd4c0267b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'dog_all_of.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart
index 54c9839b9fe..a97d069a3d2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'enum_arrays.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart
index 17a67de347e..80555c14d03 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/outer_enum.dart';
 import 'package:openapi/src/model/outer_enum_default_value.dart';
 import 'package:openapi/src/model/outer_enum_integer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart
index 99d4dd3551c..bd2a9dc6f2f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/model_file.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart
index b21bae484ea..b43572d222c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'foo.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart
index 423f93eb779..acc1c60e435 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/foo.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart
index a83f4721d82..91b35595a34 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:dio/dio.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart
index 25d25ddd06e..84c99fbc188 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'has_only_read_only.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart
index 43a07ec7d50..fcb2973b751 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'health_check_result.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart
index 5c4c3edb70f..7ab19eabd5c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'map_test.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 649f7955806..e2e3cd0b857 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/animal.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart
index f4be2b420f6..346f1257555 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'model200_response.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart
index 811e2776854..14e22005a16 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'model_client.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart
index e3323e17a18..8abf107d98e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart
index fa38556a545..fe95e3ff002 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'model_file.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart
index f5ae9fdbd76..543b79ac9f1 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'model_list.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart
index a2b022414fb..192b134d8fc 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'model_return.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart
index c361e4397ea..6613fa3afc8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'name.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart
index 3816bb33839..897d489ba45 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'nullable_class.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart
index 8efb55ea167..3ca6bf704b5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'number_only.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart
index 522ee40e2e0..17361613609 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/deprecated_object.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart
index 087980a08e8..54134b51131 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'order.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart
index f452e4b233d..f2509cb9921 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'outer_composite.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart
index 5b863632d5d..514507968c6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart
index f4585362ec8..0c8116edea9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart
index c3f134455dc..34268d0e9c5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart
index d94f696f81b..97b32593882 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart
index 80331fe4df4..76d18676a11 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:json_annotation/json_annotation.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart
index f9cf6488384..28d6294bae5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/category.dart';
 import 'package:openapi/src/model/tag.dart';
 import 'package:json_annotation/json_annotation.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart
index c79e7df9aea..c71c088f138 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'read_only_first.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart
index 072d072e0bd..ca56d9841a5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart
index 84332bb1a13..acd3ba09957 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'special_model_name.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart
index d0372c17422..d8a87eec182 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'tag.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart
index 8bb2ae70ce5..62f132ce776 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:json_annotation/json_annotation.dart';
 
 part 'user.g.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
index 0ff8fb37bbd..3fdac6d5a44 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
index a278b039b66..04f59d36012 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/all_of_with_single_ref.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/single_ref_type.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
index fcbb9127b0b..a8f8aa9c902 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/dog.dart';
 import 'package:openapi/src/model/cat.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
index 598c2928baf..aadcd792e2b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/api_response.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
index 45493f05e9a..5bc0982b8ab 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
index e82e28d1df2..72239924f5e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
index 674c21d9507..21f3a5a4c2d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/array_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/read_only_first.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
index 053dde2ef17..75827b9a429 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/capitalization.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
index 45f69c1f85d..31a2b14769c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/animal.dart';
 import 'package:openapi/src/model/cat_all_of.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
index 43b6e6b37ad..02d9cce0cae 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat_all_of.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
index 06f7f7d3c73..3a541dd1fa9 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/category.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
index 3e239c512b3..51166943c6c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/class_model.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
index 832e3bbc7e5..91d0b428e9b 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/deprecated_object.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
index 70224053840..b7cb6bf731f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/dog_all_of.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
index 798329de2a6..bd52567fa60 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog_all_of.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
index 4f62ed49fdc..b79a175e833 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_arrays.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
index b46e039ae05..831f5b9d6d2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/enum_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/outer_enum.dart';
 import 'package:openapi/src/model/outer_enum_default_value.dart';
 import 'package:built_collection/built_collection.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
index a8928601084..5ab41d14f43 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/model_file.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
index b48a792d382..57e0992c67c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
index f8000092c45..b5903ebd5db 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/foo_get_default_response.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/foo.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
index fe744a3f10c..33775231476 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/format_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'dart:typed_data';
 import 'package:openapi/src/model/date.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
index b9d94b28d3e..9683985cf19 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
index de9061bed3b..c092a535f2f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/health_check_result.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
index c87f435166f..9fa58677a84 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/map_test.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
index 8711a865f41..76b5933ae5a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/animal.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
index 7768fd40f0a..0a2cfb4411a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model200_response.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
index 78c595e4f10..36690977421 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_client.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_enum_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_enum_class.dart
index f49be90d2bb..ac609bfd15a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_enum_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_enum_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
index 2a4c01eae99..2702c21d36f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_file.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
index 7f6b72c44e5..579853258f8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_list.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
index 369f3c21bf7..45a2f67f8a4 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/model_return.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
index 500f22835ce..10fa99e6a5f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/name.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
index 9bfe8cf4ed6..c993a41303f 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/nullable_class.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/date.dart';
 import 'package:built_value/json_object.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
index 3755af82b7b..482a95f3e52 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/number_only.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
index 5d59d503730..f59131ea6fb 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/deprecated_object.dart';
 import 'package:built_value/built_value.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
index c4b0498db23..a44e1b340c1 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/order.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
index 606ef37ee03..0d6341cc129 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_composite.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum.dart
index 882219e06cd..5ad5d8009bd 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_default_value.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_default_value.dart
index 77353c07711..62c3cefe845 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_default_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_default_value.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer.dart
index 9b179131475..988b30785d3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer_default_value.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer_default_value.dart
index ded5b2c7231..3fe792cedbe 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer_default_value.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_enum_integer_default_value.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
index 643c70deea3..17332985645 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:openapi/src/model/outer_enum_integer.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
index 054146a2c91..4d6358bef27 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/pet.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:openapi/src/model/category.dart';
 import 'package:openapi/src/model/tag.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
index f25f60a550c..b619217ab3c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/read_only_first.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/single_ref_type.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/single_ref_type.dart
index f1e6aef099e..b51e77292e8 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/single_ref_type.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/single_ref_type.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
index a8acd264fa5..fa860056b45 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/special_model_name.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
index 7b5a857c07c..3be220d8188 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/tag.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
index 8c9548d5fe8..f7577d7e1ee 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/user.dart
@@ -2,6 +2,7 @@
 // AUTO-GENERATED FILE, DO NOT MODIFY!
 //
 
+// ignore_for_file: unused_element
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
 
-- 
GitLab


From f3e3ee644289a4f1d178cb02b265b424a41c05b0 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:27:11 +0200
Subject: [PATCH 41/42] updated tests

---
 .../dart-dio/oneof/.openapi-generator/FILES   |  4 ++
 .../test/bar_create_test.dart                 | 30 ++++++++++
 .../test/bar_ref_or_value_test.dart           | 30 ++++++++++
 .../test/bar_ref_test.dart                    | 30 ++++++++++
 .../test/bar_test.dart                        | 29 ++++++++++
 .../test/entity_ref_test.dart                 | 30 ++++++++++
 .../test/entity_test.dart                     | 30 ++++++++++
 .../test/foo_ref_or_value_test.dart           | 30 ++++++++++
 ...foo_ref_or_value_with_properties_test.dart | 47 ----------------
 .../test/foo_ref_test.dart                    | 30 ++++++++++
 .../test/foo_test.dart                        | 30 ++++++++++
 .../test/pasta_test.dart                      | 30 ++++++++++
 .../test/pizza_speziale_test.dart             | 30 ++++++++++
 .../test/pizza_test.dart                      | 30 ++++++++++
 .../oneof_primitive/.openapi-generator/FILES  |  3 +
 .../.openapi-generator/FILES                  | 55 +++++++++++++++++++
 .../test/class_model_test.dart                |  4 +-
 .../test/default_api_test.dart                |  2 +-
 .../test/model200_response_test.dart          |  4 +-
 19 files changed, 426 insertions(+), 52 deletions(-)
 delete mode 100644 samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
index f1ab7b5540a..315955019da 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
@@ -21,3 +21,7 @@ lib/src/model/date.dart
 lib/src/model/fruit.dart
 lib/src/serializers.dart
 pubspec.yaml
+test/apple_test.dart
+test/banana_test.dart
+test/default_api_test.dart
+test/fruit_test.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart
index ebd0b0d469c..1bf90151be8 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_create_test.dart
@@ -22,5 +22,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart
index e9dd1841233..c132ac09943 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_or_value_test.dart
@@ -7,5 +7,35 @@ void main() {
   // TODO add properties to the builder and call build()
 
   group(BarRefOrValue, () {
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart
index 8048c4aecb7..9c410b2b5c5 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_ref_test.dart
@@ -7,5 +7,35 @@ void main() {
   // TODO add properties to the builder and call build()
 
   group(BarRef, () {
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart
index e77bf0a38fd..dc6daaa3400 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/bar_test.dart
@@ -7,6 +7,11 @@ void main() {
   // TODO add properties to the builder and call build()
 
   group(Bar, () {
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
     // String barPropA
     test('to test the property `barPropA`', () async {
       // TODO
@@ -22,5 +27,29 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart
index f3e86f57263..836289893fb 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_ref_test.dart
@@ -19,5 +19,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart
index 77be22ac774..30429747562 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/entity_test.dart
@@ -7,5 +7,35 @@ void main() {
   // TODO add properties to the builder and call build()
 
   group(Entity, () {
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart
index 2b25b2efe97..029d030e5e3 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_test.dart
@@ -7,5 +7,35 @@ void main() {
   // TODO add properties to the builder and call build()
 
   group(FooRefOrValue, () {
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart
deleted file mode 100644
index af4e0d7cb1f..00000000000
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_or_value_with_properties_test.dart
+++ /dev/null
@@ -1,47 +0,0 @@
-import 'package:test/test.dart';
-import 'package:openapi/openapi.dart';
-
-// tests for FooRefOrValueWithProperties
-void main() {
-  final instance = FooRefOrValueWithPropertiesBuilder();
-  // TODO add properties to the builder and call build()
-
-  group(FooRefOrValueWithProperties, () {
-    // A shared property with oneOf
-    // String sharedProp
-    test('to test the property `sharedProp`', () async {
-      // TODO
-    });
-
-    // Hyperlink reference
-    // String href
-    test('to test the property `href`', () async {
-      // TODO
-    });
-
-    // unique identifier
-    // String id
-    test('to test the property `id`', () async {
-      // TODO
-    });
-
-    // A URI to a JSON-Schema file that defines additional attributes and relationships
-    // String atSchemaLocation
-    test('to test the property `atSchemaLocation`', () async {
-      // TODO
-    });
-
-    // When sub-classing, this defines the super-class
-    // String atBaseType
-    test('to test the property `atBaseType`', () async {
-      // TODO
-    });
-
-    // When sub-classing, this defines the sub-class Extensible name
-    // String atType
-    test('to test the property `atType`', () async {
-      // TODO
-    });
-
-  });
-}
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart
index f09fa56daa7..a1398787bbc 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_ref_test.dart
@@ -12,5 +12,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart
index a3ab789b964..93a5286e2b4 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/foo_test.dart
@@ -17,5 +17,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart
index 12e61f2db18..6a3ae338eec 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pasta_test.dart
@@ -12,5 +12,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart
index 37140088395..774320231c9 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_speziale_test.dart
@@ -12,5 +12,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart
index 32b0f6a6c3a..5c6e1af95a5 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/test/pizza_test.dart
@@ -12,5 +12,35 @@ void main() {
       // TODO
     });
 
+    // Hyperlink reference
+    // String href
+    test('to test the property `href`', () async {
+      // TODO
+    });
+
+    // unique identifier
+    // String id
+    test('to test the property `id`', () async {
+      // TODO
+    });
+
+    // A URI to a JSON-Schema file that defines additional attributes and relationships
+    // String atSchemaLocation
+    test('to test the property `atSchemaLocation`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the super-class
+    // String atBaseType
+    test('to test the property `atBaseType`', () async {
+      // TODO
+    });
+
+    // When sub-classing, this defines the sub-class Extensible name
+    // String atType
+    test('to test the property `atType`', () async {
+      // TODO
+    });
+
   });
 }
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
index 7f2ac59bf64..b3537f6d4e1 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
@@ -19,3 +19,6 @@ lib/src/model/date.dart
 lib/src/model/example.dart
 lib/src/serializers.dart
 pubspec.yaml
+test/child_test.dart
+test/default_api_test.dart
+test/example_test.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES
index 1a69ee77d62..3553a04037d 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES
@@ -123,3 +123,58 @@ lib/src/model/tag.dart
 lib/src/model/user.dart
 lib/src/serializers.dart
 pubspec.yaml
+test/additional_properties_class_test.dart
+test/all_of_with_single_ref_test.dart
+test/animal_test.dart
+test/another_fake_api_test.dart
+test/api_response_test.dart
+test/array_of_array_of_number_only_test.dart
+test/array_of_number_only_test.dart
+test/array_test_test.dart
+test/capitalization_test.dart
+test/cat_all_of_test.dart
+test/cat_test.dart
+test/category_test.dart
+test/class_model_test.dart
+test/default_api_test.dart
+test/deprecated_object_test.dart
+test/dog_all_of_test.dart
+test/dog_test.dart
+test/enum_arrays_test.dart
+test/enum_test_test.dart
+test/fake_api_test.dart
+test/fake_classname_tags123_api_test.dart
+test/file_schema_test_class_test.dart
+test/foo_get_default_response_test.dart
+test/foo_test.dart
+test/format_test_test.dart
+test/has_only_read_only_test.dart
+test/health_check_result_test.dart
+test/map_test_test.dart
+test/mixed_properties_and_additional_properties_class_test.dart
+test/model200_response_test.dart
+test/model_client_test.dart
+test/model_enum_class_test.dart
+test/model_file_test.dart
+test/model_list_test.dart
+test/model_return_test.dart
+test/name_test.dart
+test/nullable_class_test.dart
+test/number_only_test.dart
+test/object_with_deprecated_fields_test.dart
+test/order_test.dart
+test/outer_composite_test.dart
+test/outer_enum_default_value_test.dart
+test/outer_enum_integer_default_value_test.dart
+test/outer_enum_integer_test.dart
+test/outer_enum_test.dart
+test/outer_object_with_enum_property_test.dart
+test/pet_api_test.dart
+test/pet_test.dart
+test/read_only_first_test.dart
+test/single_ref_type_test.dart
+test/special_model_name_test.dart
+test/store_api_test.dart
+test/tag_test.dart
+test/user_api_test.dart
+test/user_test.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/class_model_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/class_model_test.dart
index 92f95f186c9..89f1d35e556 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/class_model_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/class_model_test.dart
@@ -7,8 +7,8 @@ void main() {
   // TODO add properties to the builder and call build()
 
   group(ClassModel, () {
-    // String class_
-    test('to test the property `class_`', () async {
+    // String classField
+    test('to test the property `classField`', () async {
       // TODO
     });
 
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/default_api_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/default_api_test.dart
index eef4c41652e..f079565f978 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/default_api_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/default_api_test.dart
@@ -7,7 +7,7 @@ void main() {
   final instance = Openapi().getDefaultApi();
 
   group(DefaultApi, () {
-    //Future<InlineResponseDefault> fooGet() async
+    //Future<FooGetDefaultResponse> fooGet() async
     test('test fooGet', () async {
       // TODO
     });
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/model200_response_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/model200_response_test.dart
index 39ff6ec59c0..11bac07fafb 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/model200_response_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/test/model200_response_test.dart
@@ -12,8 +12,8 @@ void main() {
       // TODO
     });
 
-    // String class_
-    test('to test the property `class_`', () async {
+    // String classField
+    test('to test the property `classField`', () async {
       // TODO
     });
 
-- 
GitLab


From 2d1c22ef302c267ed35445e5038cbdae45c48e10 Mon Sep 17 00:00:00 2001
From: Ahmed Fwela <ahmednfwela@bdaya-dev.com>
Date: Sun, 4 Sep 2022 04:39:37 +0200
Subject: [PATCH 42/42] regen samples

---
 .../dart-dio/oneof/.openapi-generator/FILES   |  4 --
 .../oneof_primitive/.openapi-generator/FILES  |  3 -
 .../.openapi-generator/FILES                  | 55 -------------------
 3 files changed, 62 deletions(-)

diff --git a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
index 315955019da..f1ab7b5540a 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
+++ b/samples/openapi3/client/petstore/dart-dio/oneof/.openapi-generator/FILES
@@ -21,7 +21,3 @@ lib/src/model/date.dart
 lib/src/model/fruit.dart
 lib/src/serializers.dart
 pubspec.yaml
-test/apple_test.dart
-test/banana_test.dart
-test/default_api_test.dart
-test/fruit_test.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
index b3537f6d4e1..7f2ac59bf64 100644
--- a/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
+++ b/samples/openapi3/client/petstore/dart-dio/oneof_primitive/.openapi-generator/FILES
@@ -19,6 +19,3 @@ lib/src/model/date.dart
 lib/src/model/example.dart
 lib/src/serializers.dart
 pubspec.yaml
-test/child_test.dart
-test/default_api_test.dart
-test/example_test.dart
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES
index 3553a04037d..1a69ee77d62 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/.openapi-generator/FILES
@@ -123,58 +123,3 @@ lib/src/model/tag.dart
 lib/src/model/user.dart
 lib/src/serializers.dart
 pubspec.yaml
-test/additional_properties_class_test.dart
-test/all_of_with_single_ref_test.dart
-test/animal_test.dart
-test/another_fake_api_test.dart
-test/api_response_test.dart
-test/array_of_array_of_number_only_test.dart
-test/array_of_number_only_test.dart
-test/array_test_test.dart
-test/capitalization_test.dart
-test/cat_all_of_test.dart
-test/cat_test.dart
-test/category_test.dart
-test/class_model_test.dart
-test/default_api_test.dart
-test/deprecated_object_test.dart
-test/dog_all_of_test.dart
-test/dog_test.dart
-test/enum_arrays_test.dart
-test/enum_test_test.dart
-test/fake_api_test.dart
-test/fake_classname_tags123_api_test.dart
-test/file_schema_test_class_test.dart
-test/foo_get_default_response_test.dart
-test/foo_test.dart
-test/format_test_test.dart
-test/has_only_read_only_test.dart
-test/health_check_result_test.dart
-test/map_test_test.dart
-test/mixed_properties_and_additional_properties_class_test.dart
-test/model200_response_test.dart
-test/model_client_test.dart
-test/model_enum_class_test.dart
-test/model_file_test.dart
-test/model_list_test.dart
-test/model_return_test.dart
-test/name_test.dart
-test/nullable_class_test.dart
-test/number_only_test.dart
-test/object_with_deprecated_fields_test.dart
-test/order_test.dart
-test/outer_composite_test.dart
-test/outer_enum_default_value_test.dart
-test/outer_enum_integer_default_value_test.dart
-test/outer_enum_integer_test.dart
-test/outer_enum_test.dart
-test/outer_object_with_enum_property_test.dart
-test/pet_api_test.dart
-test/pet_test.dart
-test/read_only_first_test.dart
-test/single_ref_type_test.dart
-test/special_model_name_test.dart
-test/store_api_test.dart
-test/tag_test.dart
-test/user_api_test.dart
-test/user_test.dart
-- 
GitLab