flowchart TD
AliasedModel("AliasedModel")
AliasedModel -->|"="| AliasedEncoder_AliasedModel_
flowchart TD
AllTypesEncoder("AllTypesEncoder")
AllTypesEncoder -->|"_typeEncoders"| ITypeEncoder
ITypeEncoder("ITypeEncoder")
ITypeEncoder -->|"="| SpecialTypeEncoder
flowchart TD
AlternateModel("AlternateModel")
AlternateModel -->|"="| ObjectAlternateEncoder
ObjectAlternateEncoder("ObjectAlternateEncoder")
ObjectAlternateEncoder -->|"_collection"| CollectionModel
ObjectAlternateEncoder -->|"_objBase"| ObjBaseModel
CollectionModel("CollectionModel")
CollectionModel -->|"="| CollectionEncoder
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
BaseDomainModel_DomainLabelModel_("BaseDomainModel(DomainLabelModel)")
BaseDomainModel_DomainLabelModel_ -->|"="| BaseDomainEncoder_DomainLabelModel_
BaseDomainModel_DomainRangeModel_("BaseDomainModel(DomainRangeModel)")
BaseDomainModel_DomainRangeModel_ -->|"="| BaseDomainEncoder_DomainRangeModel_
BaseDomainModel(DomainRegexModel)
flowchart TD
BaseDomainModel_DomainRegexModel_("BaseDomainModel(DomainRegexModel)")
BaseDomainModel_DomainRegexModel_ -->|"="| BaseDomainEncoder_DomainRegexModel_
BaseDomainModel_DomainTrueFalseModel_("BaseDomainModel(DomainTrueFalseModel)")
BaseDomainModel_DomainTrueFalseModel_ -->|"="| BaseDomainEncoder_DomainTrueFalseModel_
BaseTypeModel("BaseTypeModel")
BaseTypeModel -->|"="| AllTypesEncoder
AllTypesEncoder("AllTypesEncoder")
AllTypesEncoder -->|"_typeEncoders"| ITypeEncoder
flowchart TD
CategoriesModel("CategoriesModel")
CategoriesModel -->|"="| CategoriesEncoder
CategoriesEncoder("CategoriesEncoder")
CategoriesEncoder -->|"_and"| CategoryModel
CategoriesEncoder -->|"_type"| BaseTypeModel
CategoryModel("CategoryModel")
CategoryModel -->|"="| CategoryEncoder
CategoryEncoder("CategoryEncoder")
CategoryEncoder -->|"_modifiers"| ModifierModel
CategoryEncoder -->|"_output"| TypeRefModel_TypeKindModel_
ModifierModel("ModifierModel")
ModifierModel -->|"="| ModifierEncoder
TypeRefModel_TypeKindModel_("TypeRefModel(TypeKindModel)")
TypeRefModel_TypeKindModel_ -->|"="| TypeRefEncoder_TypeRefModel_TypeKindModel__TypeKindModel_
BaseTypeModel("BaseTypeModel")
BaseTypeModel -->|"="| AllTypesEncoder
flowchart TD
ConstantEncoder("ConstantEncoder")
ConstantEncoder -->|"_simple"| SimpleModel
SimpleModel("SimpleModel")
SimpleModel -->|"="| SimpleEncoder
ConstantModel("ConstantModel")
ConstantModel -->|"="| ConstantEncoder
ConstantEncoder("ConstantEncoder")
ConstantEncoder -->|"_simple"| SimpleModel
DescribedModel("DescribedModel")
DescribedModel -->|"="| DescribedEncoder_DescribedModel_
flowchart TD
DirectiveEncoder("DirectiveEncoder")
DirectiveEncoder -->|"_parameter"| InputParamModel
InputParamModel("InputParamModel")
InputParamModel -->|"="| InputParamEncoder
InputParamEncoder("InputParamEncoder")
InputParamEncoder -->|"_constant"| ConstantModel
InputParamEncoder -->|"_modifier"| ModifierModel
InputParamEncoder -->|"_objArg"| ITypeArgModel
ConstantModel("ConstantModel")
ConstantModel -->|"="| ConstantEncoder
ModifierModel("ModifierModel")
ModifierModel -->|"="| ModifierEncoder
ITypeArgModel("ITypeArgModel")
ITypeArgModel -->|"="| TypeArgEncoder
TypeArgEncoder("TypeArgEncoder")
TypeArgEncoder -->|"_enumValue"| EnumValueModel
EnumValueModel("EnumValueModel")
EnumValueModel -->|"="| EnumValueEncoder
flowchart TD
DirectiveModel("DirectiveModel")
DirectiveModel -->|"="| DirectiveEncoder
DirectiveEncoder("DirectiveEncoder")
DirectiveEncoder -->|"_parameter"| InputParamModel
flowchart TD
DirectivesModel("DirectivesModel")
DirectivesModel -->|"="| DirectivesEncoder
DirectivesEncoder("DirectivesEncoder")
DirectivesEncoder -->|"_and"| DirectiveModel
DirectivesEncoder -->|"_type"| BaseTypeModel
DirectiveModel("DirectiveModel")
DirectiveModel -->|"="| DirectiveEncoder
BaseTypeModel("BaseTypeModel")
BaseTypeModel -->|"="| AllTypesEncoder
DomainItemEncoder_DomainItemEncoder`1("DomainItemEncoder(DomainItemEncoder`1")
DomainItemEncoder_DomainItemEncoder`1 -->|"_item"| DomainLabelModel
DomainLabelModel("DomainLabelModel")
DomainLabelModel -->|"="| DomainLabelEncoder
DomainLabelEncoder("DomainLabelEncoder")
DomainLabelEncoder -->|"_enumValue"| EnumValueModel
EnumValueModel("EnumValueModel")
EnumValueModel -->|"="| EnumValueEncoder
DomainItemModel(DomainLabelModel)
flowchart TD
DomainItemModel_DomainLabelModel_("DomainItemModel(DomainLabelModel)")
DomainItemModel_DomainLabelModel_ -->|"="| DomainItemEncoder_DomainLabelModel_
DomainItemModel_DomainRangeModel_("DomainItemModel(DomainRangeModel)")
DomainItemModel_DomainRangeModel_ -->|"="| DomainItemEncoder_DomainRangeModel_
DomainItemModel_DomainRegexModel_("DomainItemModel(DomainRegexModel)")
DomainItemModel_DomainRegexModel_ -->|"="| DomainItemEncoder_DomainRegexModel_
DomainItemModel_DomainTrueFalseModel_("DomainItemModel(DomainTrueFalseModel)")
DomainItemModel_DomainTrueFalseModel_ -->|"="| DomainItemEncoder_DomainTrueFalseModel_
DomainRangeModel("DomainRangeModel")
DomainRangeModel -->|"="| DomainRangeEncoder
DomainRefModel("DomainRefModel")
DomainRefModel -->|"="| DomainRefEncoder
flowchart TD
DomainRegexModel("DomainRegexModel")
DomainRegexModel -->|"="| DomainRegexEncoder
DomainTrueFalseModel("DomainTrueFalseModel")
DomainTrueFalseModel -->|"="| DomainTrueFalseEncoder
flowchart TD
DualFieldModel("DualFieldModel")
DualFieldModel -->|"="| DualFieldEncoder
DualFieldEncoder("DualFieldEncoder")
DualFieldEncoder -->|"_modifier"| ModifierModel
DualFieldEncoder -->|"_objBase"| ObjBaseModel
ModifierModel("ModifierModel")
ModifierModel -->|"="| ModifierEncoder
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
EncoderRepositoryBuilder("EncoderRepositoryBuilder")
EncoderRepositoryBuilder -->|"AddListEncoder"| SpecialTypeModel
SpecialTypeModel("SpecialTypeModel")
SpecialTypeModel -->|"="| SpecialTypeEncoder
flowchart TD
EnumLabelModel("EnumLabelModel")
EnumLabelModel -->|"="| EnumLabelEncoder
flowchart TD
InputFieldModel("InputFieldModel")
InputFieldModel -->|"="| InputFieldEncoder
InputFieldEncoder("InputFieldEncoder")
InputFieldEncoder -->|"_constant"| ConstantModel
InputFieldEncoder -->|"_modifier"| ModifierModel
InputFieldEncoder -->|"_objBase"| ObjBaseModel
ConstantModel("ConstantModel")
ConstantModel -->|"="| ConstantEncoder
ModifierModel("ModifierModel")
ModifierModel -->|"="| ModifierEncoder
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
NamedModel("NamedModel")
NamedModel -->|"="| NamedEncoder_NamedModel_
ObjectBaseEncoder(ObjectBaseEncoder`1
flowchart TD
ObjectBaseEncoder_ObjectBaseEncoder`1("ObjectBaseEncoder(ObjectBaseEncoder`1")
ObjectBaseEncoder_ObjectBaseEncoder`1 -->|"_objArg"| ITypeArgModel
ITypeArgModel("ITypeArgModel")
ITypeArgModel -->|"="| TypeArgEncoder
ObjectForEncoder_ObjectForEncoder`1("ObjectForEncoder(ObjectForEncoder`1")
ObjectForEncoder_ObjectForEncoder`1 -->|"_encoder"| AlternateModel
AlternateModel("AlternateModel")
AlternateModel -->|"="| ObjectAlternateEncoder
ObjectForModel_AlternateModel_("ObjectForModel(AlternateModel)")
ObjectForModel_AlternateModel_ -->|"="| ObjectForEncoder_AlternateModel_
ObjectForModel_DualFieldModel_("ObjectForModel(DualFieldModel)")
ObjectForModel_DualFieldModel_ -->|"="| ObjectForEncoder_DualFieldModel_
flowchart TD
ObjectForModel_InputFieldModel_("ObjectForModel(InputFieldModel)")
ObjectForModel_InputFieldModel_ -->|"="| ObjectForEncoder_InputFieldModel_
ObjectForModel_OutputFieldModel_("ObjectForModel(OutputFieldModel)")
ObjectForModel_OutputFieldModel_ -->|"="| ObjectForEncoder_OutputFieldModel_
OpDirectiveModel("OpDirectiveModel")
OpDirectiveModel -->|"="| OpDirectiveEncoder
flowchart TD
OperationModel("OperationModel")
OperationModel -->|"="| OperationEncoder
OperationEncoder("OperationEncoder")
OperationEncoder -->|"_directive"| OpDirectiveModel
OperationEncoder -->|"_fragment"| OpFragmentModel
OperationEncoder -->|"_modifier"| ModifierModel
OperationEncoder -->|"_result"| OpResultModel
OperationEncoder -->|"_selection"| OpSelectionModel
OperationEncoder -->|"_variable"| OpVariableModel
OpDirectiveModel("OpDirectiveModel")
OpDirectiveModel -->|"="| OpDirectiveEncoder
OpFragmentModel("OpFragmentModel")
OpFragmentModel -->|"="| OpFragmentEncoder
OpFragmentEncoder("OpFragmentEncoder")
OpFragmentEncoder -->|"_directive"| OpDirectiveModel
OpFragmentEncoder -->|"_type"| TypeRefModel_TypeKindModel_
TypeRefModel_TypeKindModel_("TypeRefModel(TypeKindModel)")
TypeRefModel_TypeKindModel_ -->|"="| TypeRefEncoder_TypeRefModel_TypeKindModel__TypeKindModel_
ModifierModel("ModifierModel")
ModifierModel -->|"="| ModifierEncoder
OpResultModel("OpResultModel")
OpResultModel -->|"="| OpResultEncoder
OpResultEncoder("OpResultEncoder")
OpResultEncoder -->|"_argument"| OpArgumentModel
OpResultEncoder -->|"_domain"| TypeRefModel_TypeKindModel_
OpSelectionModel("OpSelectionModel")
OpSelectionModel -->|"="| OpSelectionEncoder
OpSelectionEncoder("OpSelectionEncoder")
OpSelectionEncoder -->|"_argument"| OpArgumentModel
OpSelectionEncoder -->|"_directive"| OpDirectiveModel
OpSelectionEncoder -->|"_modifier"| ModifierModel
OpSelectionEncoder -->|"_type"| TypeRefModel_TypeKindModel_
OpVariableModel("OpVariableModel")
OpVariableModel -->|"="| OpVariableEncoder
OpVariableEncoder("OpVariableEncoder")
OpVariableEncoder -->|"_constant"| ConstantModel
OpVariableEncoder -->|"_directive"| OpDirectiveModel
OpVariableEncoder -->|"_type"| TypeRefModel_TypeKindModel_
ConstantModel("ConstantModel")
ConstantModel -->|"="| ConstantEncoder
flowchart TD
OperationsModel("OperationsModel")
OperationsModel -->|"="| OperationsEncoder
OperationsEncoder("OperationsEncoder")
OperationsEncoder -->|"_and"| OperationModel
OperationsEncoder -->|"_type"| BaseTypeModel
OperationModel("OperationModel")
OperationModel -->|"="| OperationEncoder
BaseTypeModel("BaseTypeModel")
BaseTypeModel -->|"="| AllTypesEncoder
OutputEnumModel("OutputEnumModel")
OutputEnumModel -->|"="| OutputEnumEncoder
flowchart TD
OutputFieldModel("OutputFieldModel")
OutputFieldModel -->|"="| OutputFieldEncoder
OutputFieldEncoder("OutputFieldEncoder")
OutputFieldEncoder -->|"_modifier"| ModifierModel
OutputFieldEncoder -->|"_objBase"| ObjBaseModel
OutputFieldEncoder -->|"_outputEnum"| OutputEnumModel
OutputFieldEncoder -->|"_parameter"| InputParamModel
ModifierModel("ModifierModel")
ModifierModel -->|"="| ModifierEncoder
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
OutputEnumModel("OutputEnumModel")
OutputEnumModel -->|"="| OutputEnumEncoder
InputParamModel("InputParamModel")
InputParamModel -->|"="| InputParamEncoder
flowchart TD
SchemaModel("SchemaModel")
SchemaModel -->|"="| SchemaEncoder
SchemaEncoder("SchemaEncoder")
SchemaEncoder -->|"_categories"| CategoriesModel
SchemaEncoder -->|"_directives"| DirectivesModel
SchemaEncoder -->|"_operations"| OperationsModel
SchemaEncoder -->|"_settings"| SettingModel
SchemaEncoder -->|"_types"| BaseTypeModel
CategoriesModel("CategoriesModel")
CategoriesModel -->|"="| CategoriesEncoder
DirectivesModel("DirectivesModel")
DirectivesModel -->|"="| DirectivesEncoder
OperationsModel("OperationsModel")
OperationsModel -->|"="| OperationsEncoder
SettingModel("SettingModel")
SettingModel -->|"="| SettingEncoder
SettingEncoder("SettingEncoder")
SettingEncoder -->|"_constant"| ConstantModel
ConstantModel("ConstantModel")
ConstantModel -->|"="| ConstantEncoder
BaseTypeModel("BaseTypeModel")
BaseTypeModel -->|"="| AllTypesEncoder
flowchart TD
TypeDualModel("TypeDualModel")
TypeDualModel -->|"="| TypeDualEncoder
TypeDualEncoder("TypeDualEncoder")
TypeDualEncoder -->|"_alternate"| AlternateModel
TypeDualEncoder -->|"_dualAlternate"| ObjectForModel_AlternateModel_
TypeDualEncoder -->|"_dualField"| ObjectForModel_DualFieldModel_
TypeDualEncoder -->|"_field"| DualFieldModel
TypeDualEncoder -->|"_forAlternate"| ObjectForModel_AlternateModel_
TypeDualEncoder -->|"_forField"| ObjectForModel_DualFieldModel_
TypeDualEncoder -->|"_parent"| ObjBaseModel
TypeDualEncoder -->|"_typeParam"| TypeParamModel
AlternateModel("AlternateModel")
AlternateModel -->|"="| ObjectAlternateEncoder
ObjectForModel_AlternateModel_("ObjectForModel(AlternateModel)")
ObjectForModel_AlternateModel_ -->|"="| ObjectForEncoder_AlternateModel_
ObjectForModel_DualFieldModel_("ObjectForModel(DualFieldModel)")
ObjectForModel_DualFieldModel_ -->|"="| ObjectForEncoder_DualFieldModel_
DualFieldModel("DualFieldModel")
DualFieldModel -->|"="| DualFieldEncoder
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
TypeParamModel("TypeParamModel")
TypeParamModel -->|"="| TypeParamEncoder
TypeParamEncoder("TypeParamEncoder")
TypeParamEncoder -->|"_typeKind"| TypeRefModel_TypeKindModel_
TypeRefModel_TypeKindModel_("TypeRefModel(TypeKindModel)")
TypeRefModel_TypeKindModel_ -->|"="| TypeRefEncoder_TypeRefModel_TypeKindModel__TypeKindModel_
flowchart TD
TypeEnumModel("TypeEnumModel")
TypeEnumModel -->|"="| TypeEnumEncoder
TypeEnumEncoder("TypeEnumEncoder")
TypeEnumEncoder -->|"_all"| EnumLabelModel
TypeEnumEncoder -->|"_item"| AliasedModel
TypeEnumEncoder -->|"_parent"| TypeRefModel_SimpleKindModel_
EnumLabelModel("EnumLabelModel")
EnumLabelModel -->|"="| EnumLabelEncoder
AliasedModel("AliasedModel")
AliasedModel -->|"="| AliasedEncoder_AliasedModel_
TypeRefModel_SimpleKindModel_("TypeRefModel(SimpleKindModel)")
TypeRefModel_SimpleKindModel_ -->|"="| TypeRefEncoder_TypeRefModel_SimpleKindModel__SimpleKindModel_
flowchart TD
TypeInputModel("TypeInputModel")
TypeInputModel -->|"="| TypeInputEncoder
TypeInputEncoder("TypeInputEncoder")
TypeInputEncoder -->|"_alternate"| AlternateModel
TypeInputEncoder -->|"_dualAlternate"| ObjectForModel_AlternateModel_
TypeInputEncoder -->|"_dualField"| ObjectForModel_DualFieldModel_
TypeInputEncoder -->|"_field"| InputFieldModel
TypeInputEncoder -->|"_forAlternate"| ObjectForModel_AlternateModel_
TypeInputEncoder -->|"_forField"| ObjectForModel_InputFieldModel_
TypeInputEncoder -->|"_parent"| ObjBaseModel
TypeInputEncoder -->|"_typeParam"| TypeParamModel
AlternateModel("AlternateModel")
AlternateModel -->|"="| ObjectAlternateEncoder
ObjectForModel_AlternateModel_("ObjectForModel(AlternateModel)")
ObjectForModel_AlternateModel_ -->|"="| ObjectForEncoder_AlternateModel_
ObjectForModel_DualFieldModel_("ObjectForModel(DualFieldModel)")
ObjectForModel_DualFieldModel_ -->|"="| ObjectForEncoder_DualFieldModel_
InputFieldModel("InputFieldModel")
InputFieldModel -->|"="| InputFieldEncoder
ObjectForModel_InputFieldModel_("ObjectForModel(InputFieldModel)")
ObjectForModel_InputFieldModel_ -->|"="| ObjectForEncoder_InputFieldModel_
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
TypeParamModel("TypeParamModel")
TypeParamModel -->|"="| TypeParamEncoder
flowchart TD
TypeOutputModel("TypeOutputModel")
TypeOutputModel -->|"="| TypeOutputEncoder
TypeOutputEncoder("TypeOutputEncoder")
TypeOutputEncoder -->|"_alternate"| AlternateModel
TypeOutputEncoder -->|"_dualAlternate"| ObjectForModel_AlternateModel_
TypeOutputEncoder -->|"_dualField"| ObjectForModel_DualFieldModel_
TypeOutputEncoder -->|"_field"| OutputFieldModel
TypeOutputEncoder -->|"_forAlternate"| ObjectForModel_AlternateModel_
TypeOutputEncoder -->|"_forField"| ObjectForModel_OutputFieldModel_
TypeOutputEncoder -->|"_parent"| ObjBaseModel
TypeOutputEncoder -->|"_typeParam"| TypeParamModel
AlternateModel("AlternateModel")
AlternateModel -->|"="| ObjectAlternateEncoder
ObjectForModel_AlternateModel_("ObjectForModel(AlternateModel)")
ObjectForModel_AlternateModel_ -->|"="| ObjectForEncoder_AlternateModel_
ObjectForModel_DualFieldModel_("ObjectForModel(DualFieldModel)")
ObjectForModel_DualFieldModel_ -->|"="| ObjectForEncoder_DualFieldModel_
OutputFieldModel("OutputFieldModel")
OutputFieldModel -->|"="| OutputFieldEncoder
ObjectForModel_OutputFieldModel_("ObjectForModel(OutputFieldModel)")
ObjectForModel_OutputFieldModel_ -->|"="| ObjectForEncoder_OutputFieldModel_
ObjBaseModel("ObjBaseModel")
ObjBaseModel -->|"="| ObjectBaseEncoder_ObjBaseModel_
TypeParamModel("TypeParamModel")
TypeParamModel -->|"="| TypeParamEncoder
flowchart TD
TypeUnionModel("TypeUnionModel")
TypeUnionModel -->|"="| TypeUnionEncoder
TypeUnionEncoder("TypeUnionEncoder")
TypeUnionEncoder -->|"_all"| UnionMemberModel
TypeUnionEncoder -->|"_item"| NamedModel
TypeUnionEncoder -->|"_parent"| TypeRefModel_SimpleKindModel_
UnionMemberModel("UnionMemberModel")
UnionMemberModel -->|"="| UnionMemberEncoder
NamedModel("NamedModel")
NamedModel -->|"="| NamedEncoder_NamedModel_
TypeRefModel_SimpleKindModel_("TypeRefModel(SimpleKindModel)")
TypeRefModel_SimpleKindModel_ -->|"="| TypeRefEncoder_TypeRefModel_SimpleKindModel__SimpleKindModel_
BaseDomainEncoder_BaseDomainEncoder`1("BaseDomainEncoder(BaseDomainEncoder`1")
BaseDomainEncoder_BaseDomainEncoder`1 -->|"_all"| DomainItemModel_DomainLabelModel_
BaseDomainEncoder_BaseDomainEncoder`1 -->|"_item"| DomainLabelModel
BaseDomainEncoder_BaseDomainEncoder`1 -->|"_parent"| TypeRefModel_SimpleKindModel_
DomainItemModel_DomainLabelModel_("DomainItemModel(DomainLabelModel)")
DomainItemModel_DomainLabelModel_ -->|"="| DomainItemEncoder_DomainLabelModel_
DomainLabelModel("DomainLabelModel")
DomainLabelModel -->|"="| DomainLabelEncoder
TypeRefModel_SimpleKindModel_("TypeRefModel(SimpleKindModel)")
TypeRefModel_SimpleKindModel_ -->|"="| TypeRefEncoder_TypeRefModel_SimpleKindModel__SimpleKindModel_