Browse Source

generated code

vpenades 8 months ago
parent
commit
9f71e73320
32 changed files with 2424 additions and 132 deletions
  1. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.AnimPointer.g.cs
  2. 39 2
      src/SharpGLTF.Core/Schema2/Generated/ext.Anisotropy.g.cs
  3. 43 2
      src/SharpGLTF.Core/Schema2/Generated/ext.ClearCoat.g.cs
  4. 41 2
      src/SharpGLTF.Core/Schema2/Generated/ext.DiffuseTransmission.g.cs
  5. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.Ior.g.cs
  6. 45 2
      src/SharpGLTF.Core/Schema2/Generated/ext.Iridescence.g.cs
  7. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.MSFT.TextureDDS.g.cs
  8. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.MaterialsEmissiveStrength.g.cs
  9. 41 2
      src/SharpGLTF.Core/Schema2/Generated/ext.MaterialsVolume.g.cs
  10. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.MeshGpuInstancing.g.cs
  11. 105 6
      src/SharpGLTF.Core/Schema2/Generated/ext.ModelLightsPunctual.g.cs
  12. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.NodeLightsPunctual.g.cs
  13. 41 2
      src/SharpGLTF.Core/Schema2/Generated/ext.Sheen.g.cs
  14. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.TextureKTX2.g.cs
  15. 41 2
      src/SharpGLTF.Core/Schema2/Generated/ext.TextureTransform.g.cs
  16. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.TextureWEBP.g.cs
  17. 37 2
      src/SharpGLTF.Core/Schema2/Generated/ext.Transmission.g.cs
  18. 33 2
      src/SharpGLTF.Core/Schema2/Generated/ext.Unlit.g.cs
  19. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.XmpJsonLinkedData.Prop.g.cs
  20. 35 2
      src/SharpGLTF.Core/Schema2/Generated/ext.XmpJsonLinkedData.Root.g.cs
  21. 41 2
      src/SharpGLTF.Core/Schema2/Generated/ext.pbrSpecular.g.cs
  22. 43 2
      src/SharpGLTF.Core/Schema2/Generated/ext.pbrSpecularGlossiness.g.cs
  23. 553 32
      src/SharpGLTF.Core/Schema2/Generated/gltf.g.cs
  24. 73 4
      src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_instance_features.g.cs
  25. 105 6
      src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_mesh_features.g.cs
  26. 37 2
      src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_structural_metadata_primitive.g.cs
  27. 473 24
      src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_structural_metadata_root.g.cs
  28. 35 2
      src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_primitive_outline.g.cs
  29. 37 2
      src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiNodeArticulations.g.cs
  30. 37 2
      src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiNodeStkMetadata.g.cs
  31. 107 6
      src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiRootArticulations.g.cs
  32. 67 4
      src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiRootStkMetadata.g.cs

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.AnimPointer.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2
 	partial class AnimationPointer : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_animation_pointer";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "pointer";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "pointer": value = FIELDINFO.From("pointer",this, instance => instance._pointer); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _pointer;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "pointer", _pointer);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 39 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.Anisotropy.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,33 @@ namespace SharpGLTF.Schema2
 	partial class MaterialAnisotropy : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_anisotropy";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "anisotropyRotation";
+			yield return "anisotropyStrength";
+			yield return "anisotropyTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "anisotropyRotation": value = FIELDINFO.From("anisotropyRotation",this, instance => instance._anisotropyRotation ?? 0); return true;
+				case "anisotropyStrength": value = FIELDINFO.From("anisotropyStrength",this, instance => instance._anisotropyStrength ?? 0); return true;
+				case "anisotropyTexture": value = FIELDINFO.From("anisotropyTexture",this, instance => instance._anisotropyTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _anisotropyRotationDefault = 0;
 		private Double? _anisotropyRotation = _anisotropyRotationDefault;
 		
@@ -47,8 +79,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _anisotropyTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "anisotropyRotation", _anisotropyRotation, _anisotropyRotationDefault);
@@ -56,7 +91,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "anisotropyTexture", _anisotropyTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -67,6 +102,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 43 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.ClearCoat.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,37 @@ namespace SharpGLTF.Schema2
 	partial class MaterialClearCoat : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_clearcoat";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "clearcoatFactor";
+			yield return "clearcoatNormalTexture";
+			yield return "clearcoatRoughnessFactor";
+			yield return "clearcoatRoughnessTexture";
+			yield return "clearcoatTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "clearcoatFactor": value = FIELDINFO.From("clearcoatFactor",this, instance => instance._clearcoatFactor ?? 0); return true;
+				case "clearcoatNormalTexture": value = FIELDINFO.From("clearcoatNormalTexture",this, instance => instance._clearcoatNormalTexture); return true;
+				case "clearcoatRoughnessFactor": value = FIELDINFO.From("clearcoatRoughnessFactor",this, instance => instance._clearcoatRoughnessFactor ?? 0); return true;
+				case "clearcoatRoughnessTexture": value = FIELDINFO.From("clearcoatRoughnessTexture",this, instance => instance._clearcoatRoughnessTexture); return true;
+				case "clearcoatTexture": value = FIELDINFO.From("clearcoatTexture",this, instance => instance._clearcoatTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _clearcoatFactorDefault = 0;
 		private const Double _clearcoatFactorMinimum = 0;
 		private const Double _clearcoatFactorMaximum = 1;
@@ -53,8 +89,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _clearcoatTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "clearcoatFactor", _clearcoatFactor, _clearcoatFactorDefault);
@@ -64,7 +103,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "clearcoatTexture", _clearcoatTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -77,6 +116,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 41 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.DiffuseTransmission.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,35 @@ namespace SharpGLTF.Schema2
 	partial class MaterialDiffuseTransmission : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_diffuse_transmission";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "diffuseTransmissionColorFactor";
+			yield return "diffuseTransmissionColorTexture";
+			yield return "diffuseTransmissionFactor";
+			yield return "diffuseTransmissionTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "diffuseTransmissionColorFactor": value = FIELDINFO.From("diffuseTransmissionColorFactor",this, instance => instance._diffuseTransmissionColorFactor ?? Vector3.One); return true;
+				case "diffuseTransmissionColorTexture": value = FIELDINFO.From("diffuseTransmissionColorTexture",this, instance => instance._diffuseTransmissionColorTexture); return true;
+				case "diffuseTransmissionFactor": value = FIELDINFO.From("diffuseTransmissionFactor",this, instance => instance._diffuseTransmissionFactor ?? 0); return true;
+				case "diffuseTransmissionTexture": value = FIELDINFO.From("diffuseTransmissionTexture",this, instance => instance._diffuseTransmissionTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector3 _diffuseTransmissionColorFactorDefault = Vector3.One;
 		private Vector3? _diffuseTransmissionColorFactor = _diffuseTransmissionColorFactorDefault;
 		
@@ -49,8 +83,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _diffuseTransmissionTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "diffuseTransmissionColorFactor", _diffuseTransmissionColorFactor, _diffuseTransmissionColorFactorDefault);
@@ -59,7 +96,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "diffuseTransmissionTexture", _diffuseTransmissionTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -71,6 +108,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.Ior.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,17 +42,43 @@ namespace SharpGLTF.Schema2
 	partial class MaterialIOR : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_ior";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "ior";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "ior": value = FIELDINFO.From("ior",this, instance => instance._ior ?? 1.5); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _iorDefault = 1.5;
 		private Double? _ior = _iorDefault;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "ior", _ior, _iorDefault);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -56,6 +87,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 45 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.Iridescence.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,39 @@ namespace SharpGLTF.Schema2
 	partial class MaterialIridescence : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_iridescence";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "iridescenceFactor";
+			yield return "iridescenceIor";
+			yield return "iridescenceTexture";
+			yield return "iridescenceThicknessMaximum";
+			yield return "iridescenceThicknessMinimum";
+			yield return "iridescenceThicknessTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "iridescenceFactor": value = FIELDINFO.From("iridescenceFactor",this, instance => instance._iridescenceFactor ?? 0); return true;
+				case "iridescenceIor": value = FIELDINFO.From("iridescenceIor",this, instance => instance._iridescenceIor ?? 1.3); return true;
+				case "iridescenceTexture": value = FIELDINFO.From("iridescenceTexture",this, instance => instance._iridescenceTexture); return true;
+				case "iridescenceThicknessMaximum": value = FIELDINFO.From("iridescenceThicknessMaximum",this, instance => instance._iridescenceThicknessMaximum ?? 400); return true;
+				case "iridescenceThicknessMinimum": value = FIELDINFO.From("iridescenceThicknessMinimum",this, instance => instance._iridescenceThicknessMinimum ?? 100); return true;
+				case "iridescenceThicknessTexture": value = FIELDINFO.From("iridescenceThicknessTexture",this, instance => instance._iridescenceThicknessTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _iridescenceFactorDefault = 0;
 		private const Double _iridescenceFactorMinimum = 0;
 		private const Double _iridescenceFactorMaximum = 1;
@@ -58,8 +96,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _iridescenceThicknessTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "iridescenceFactor", _iridescenceFactor, _iridescenceFactorDefault);
@@ -70,7 +111,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "iridescenceThicknessTexture", _iridescenceThicknessTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -84,6 +125,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.MSFT.TextureDDS.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2
 	partial class TextureDDS : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "MSFT_texture_dds";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "source";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "source": value = FIELDINFO.From("source",this, instance => instance._source); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32? _source;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "source", _source);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.MaterialsEmissiveStrength.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,18 +42,44 @@ namespace SharpGLTF.Schema2
 	partial class MaterialEmissiveStrength : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_emissive_strength";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "emissiveStrength";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "emissiveStrength": value = FIELDINFO.From("emissiveStrength",this, instance => instance._emissiveStrength ?? 1); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _emissiveStrengthDefault = 1;
 		private const Double _emissiveStrengthMinimum = 0;
 		private Double? _emissiveStrength = _emissiveStrengthDefault;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "emissiveStrength", _emissiveStrength, _emissiveStrengthDefault);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -57,6 +88,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 41 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.MaterialsVolume.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,35 @@ namespace SharpGLTF.Schema2
 	partial class MaterialVolume : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_volume";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "attenuationColor";
+			yield return "attenuationDistance";
+			yield return "thicknessFactor";
+			yield return "thicknessTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "attenuationColor": value = FIELDINFO.From("attenuationColor",this, instance => instance._attenuationColor ?? Vector3.One); return true;
+				case "attenuationDistance": value = FIELDINFO.From("attenuationDistance",this, instance => instance._attenuationDistance); return true;
+				case "thicknessFactor": value = FIELDINFO.From("thicknessFactor",this, instance => instance._thicknessFactor ?? 0); return true;
+				case "thicknessTexture": value = FIELDINFO.From("thicknessTexture",this, instance => instance._thicknessTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector3 _attenuationColorDefault = Vector3.One;
 		private Vector3? _attenuationColor = _attenuationColorDefault;
 		
@@ -49,8 +83,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _thicknessTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "attenuationColor", _attenuationColor, _attenuationColorDefault);
@@ -59,7 +96,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "thicknessTexture", _thicknessTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -71,6 +108,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.MeshGpuInstancing.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2
 	partial class MeshGpuInstancing : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "EXT_mesh_gpu_instancing";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "attributes";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "attributes": value = FIELDINFO.From("attributes",this, instance => instance._attributes); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Dictionary<String,Int32> _attributes;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "attributes", _attributes);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 105 - 6
src/SharpGLTF.Core/Schema2/Generated/ext.ModelLightsPunctual.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -34,6 +39,31 @@ namespace SharpGLTF.Schema2
 	partial class PunctualLightSpot : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "spot";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "innerConeAngle";
+			yield return "outerConeAngle";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "innerConeAngle": value = FIELDINFO.From("innerConeAngle",this, instance => instance._innerConeAngle ?? 0); return true;
+				case "outerConeAngle": value = FIELDINFO.From("outerConeAngle",this, instance => instance._outerConeAngle ?? 0.7853981633974483); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _innerConeAngleDefault = 0;
 		private const Double _innerConeAngleMinimum = 0;
 		private const Double _innerConeAngleExclusiveMaximum = 1.5707963267948966;
@@ -44,15 +74,18 @@ namespace SharpGLTF.Schema2
 		private const Double _outerConeAngleMaximum = 1.5707963267948966;
 		private Double? _outerConeAngle = _outerConeAngleDefault;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "innerConeAngle", _innerConeAngle, _innerConeAngleDefault);
 			SerializeProperty(writer, "outerConeAngle", _outerConeAngle, _outerConeAngleDefault);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -62,6 +95,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -74,6 +109,37 @@ namespace SharpGLTF.Schema2
 	partial class PunctualLight : LogicalChildOfRoot
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "light";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "color";
+			yield return "intensity";
+			yield return "range";
+			yield return "spot";
+			yield return "type";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "color": value = FIELDINFO.From("color",this, instance => instance._color ?? Vector3.One); return true;
+				case "intensity": value = FIELDINFO.From("intensity",this, instance => instance._intensity ?? 1); return true;
+				case "range": value = FIELDINFO.From("range",this, instance => instance._range); return true;
+				case "spot": value = FIELDINFO.From("spot",this, instance => instance._spot); return true;
+				case "type": value = FIELDINFO.From("type",this, instance => instance._type); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector3 _colorDefault = Vector3.One;
 		private Vector3? _color = _colorDefault;
 		
@@ -88,8 +154,11 @@ namespace SharpGLTF.Schema2
 		
 		private String _type;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "color", _color, _colorDefault);
@@ -99,7 +168,7 @@ namespace SharpGLTF.Schema2
 			SerializeProperty(writer, "type", _type);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -112,6 +181,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	#if NET6_0_OR_GREATER
@@ -121,17 +192,43 @@ namespace SharpGLTF.Schema2
 	partial class _ModelPunctualLights : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_lights_punctual";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "lights";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "lights": value = FIELDINFO.From("lights",this, instance => instance._lights); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _lightsMinItems = 1;
 		private ChildrenList<PunctualLight,ModelRoot> _lights;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "lights", _lights, _lightsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -140,6 +237,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.NodeLightsPunctual.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -34,16 +39,42 @@ namespace SharpGLTF.Schema2
 	partial class _NodePunctualLight : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_lights_punctual";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "light";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "light": value = FIELDINFO.From("light",this, instance => instance._light); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32 _light;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "light", _light);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -52,6 +83,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 41 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.Sheen.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,35 @@ namespace SharpGLTF.Schema2
 	partial class MaterialSheen : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_sheen";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "sheenColorFactor";
+			yield return "sheenColorTexture";
+			yield return "sheenRoughnessFactor";
+			yield return "sheenRoughnessTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "sheenColorFactor": value = FIELDINFO.From("sheenColorFactor",this, instance => instance._sheenColorFactor ?? Vector3.Zero); return true;
+				case "sheenColorTexture": value = FIELDINFO.From("sheenColorTexture",this, instance => instance._sheenColorTexture); return true;
+				case "sheenRoughnessFactor": value = FIELDINFO.From("sheenRoughnessFactor",this, instance => instance._sheenRoughnessFactor ?? 0); return true;
+				case "sheenRoughnessTexture": value = FIELDINFO.From("sheenRoughnessTexture",this, instance => instance._sheenRoughnessTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector3 _sheenColorFactorDefault = Vector3.Zero;
 		private Vector3? _sheenColorFactor = _sheenColorFactorDefault;
 		
@@ -49,8 +83,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _sheenRoughnessTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "sheenColorFactor", _sheenColorFactor, _sheenColorFactorDefault);
@@ -59,7 +96,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "sheenRoughnessTexture", _sheenRoughnessTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -71,6 +108,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.TextureKTX2.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2
 	partial class TextureKTX2 : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_texture_basisu";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "source";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "source": value = FIELDINFO.From("source",this, instance => instance._source); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32? _source;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "source", _source);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 41 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.TextureTransform.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,35 @@ namespace SharpGLTF.Schema2
 	partial class TextureTransform : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_texture_transform";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "offset";
+			yield return "rotation";
+			yield return "scale";
+			yield return "texCoord";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "offset": value = FIELDINFO.From("offset",this, instance => instance._offset ?? Vector2.Zero); return true;
+				case "rotation": value = FIELDINFO.From("rotation",this, instance => instance._rotation ?? 0); return true;
+				case "scale": value = FIELDINFO.From("scale",this, instance => instance._scale ?? Vector2.One); return true;
+				case "texCoord": value = FIELDINFO.From("texCoord",this, instance => instance._texCoord); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector2 _offsetDefault = Vector2.Zero;
 		private Vector2? _offset = _offsetDefault;
 		
@@ -49,8 +83,11 @@ namespace SharpGLTF.Schema2
 		private const Int32 _texCoordMinimum = 0;
 		private Int32? _texCoord;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "offset", _offset, _offsetDefault);
@@ -59,7 +96,7 @@ namespace SharpGLTF.Schema2
 			SerializeProperty(writer, "texCoord", _texCoord);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -71,6 +108,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.TextureWEBP.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2
 	partial class TextureWEBP : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "EXT_texture_webp";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "source";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "source": value = FIELDINFO.From("source",this, instance => instance._source); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32? _source;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "source", _source);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 37 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.Transmission.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,31 @@ namespace SharpGLTF.Schema2
 	partial class MaterialTransmission : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_transmission";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "transmissionFactor";
+			yield return "transmissionTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "transmissionFactor": value = FIELDINFO.From("transmissionFactor",this, instance => instance._transmissionFactor ?? 0); return true;
+				case "transmissionTexture": value = FIELDINFO.From("transmissionTexture",this, instance => instance._transmissionTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _transmissionFactorDefault = 0;
 		private const Double _transmissionFactorMinimum = 0;
 		private const Double _transmissionFactorMaximum = 1;
@@ -44,15 +74,18 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _transmissionTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "transmissionFactor", _transmissionFactor, _transmissionFactorDefault);
 			SerializePropertyObject(writer, "transmissionTexture", _transmissionTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -62,6 +95,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 33 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.Unlit.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,13 +42,37 @@ namespace SharpGLTF.Schema2
 	partial class MaterialUnlit : ExtraProperties
 	{
 	
+		#region reflection
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		public const string SCHEMANAME = "KHR_materials_unlit";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
+		#endregion
+	
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -51,6 +80,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.XmpJsonLinkedData.Prop.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2
 	partial class XmpPacketReference : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_xmp_json_ld";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "packet";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "packet": value = FIELDINFO.From("packet",this, instance => instance._packet); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32 _packet;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "packet", _packet);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.XmpJsonLinkedData.Root.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,17 +42,43 @@ namespace SharpGLTF.Schema2
 	partial class XmpPackets : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_xmp_json_ld";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "packets";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "packets": value = FIELDINFO.From("packets",this, instance => instance._packets); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _packetsMinItems = 1;
 		private List<System.Text.Json.Nodes.JsonNode> _packets;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "packets", _packets, _packetsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -56,6 +87,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 41 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.pbrSpecular.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,35 @@ namespace SharpGLTF.Schema2
 	partial class MaterialSpecular : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_specular";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "specularColorFactor";
+			yield return "specularColorTexture";
+			yield return "specularFactor";
+			yield return "specularTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "specularColorFactor": value = FIELDINFO.From("specularColorFactor",this, instance => instance._specularColorFactor ?? Vector3.One); return true;
+				case "specularColorTexture": value = FIELDINFO.From("specularColorTexture",this, instance => instance._specularColorTexture); return true;
+				case "specularFactor": value = FIELDINFO.From("specularFactor",this, instance => instance._specularFactor ?? 1); return true;
+				case "specularTexture": value = FIELDINFO.From("specularTexture",this, instance => instance._specularTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector3 _specularColorFactorDefault = Vector3.One;
 		private Vector3? _specularColorFactor = _specularColorFactorDefault;
 		
@@ -49,8 +83,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _specularTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "specularColorFactor", _specularColorFactor, _specularColorFactorDefault);
@@ -59,7 +96,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "specularTexture", _specularTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -71,6 +108,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 43 - 2
src/SharpGLTF.Core/Schema2/Generated/ext.pbrSpecularGlossiness.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2
 {
 	using Collections;
@@ -37,6 +42,37 @@ namespace SharpGLTF.Schema2
 	partial class MaterialPBRSpecularGlossiness : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "KHR_materials_pbrSpecularGlossiness";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "diffuseFactor";
+			yield return "diffuseTexture";
+			yield return "glossinessFactor";
+			yield return "specularFactor";
+			yield return "specularGlossinessTexture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "diffuseFactor": value = FIELDINFO.From("diffuseFactor",this, instance => instance._diffuseFactor ?? Vector4.One); return true;
+				case "diffuseTexture": value = FIELDINFO.From("diffuseTexture",this, instance => instance._diffuseTexture); return true;
+				case "glossinessFactor": value = FIELDINFO.From("glossinessFactor",this, instance => instance._glossinessFactor ?? 1); return true;
+				case "specularFactor": value = FIELDINFO.From("specularFactor",this, instance => instance._specularFactor ?? Vector3.One); return true;
+				case "specularGlossinessTexture": value = FIELDINFO.From("specularGlossinessTexture",this, instance => instance._specularGlossinessTexture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Vector4 _diffuseFactorDefault = Vector4.One;
 		private Vector4? _diffuseFactor = _diffuseFactorDefault;
 		
@@ -52,8 +88,11 @@ namespace SharpGLTF.Schema2
 		
 		private TextureInfo _specularGlossinessTexture;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "diffuseFactor", _diffuseFactor, _diffuseFactorDefault);
@@ -63,7 +102,7 @@ namespace SharpGLTF.Schema2
 			SerializePropertyObject(writer, "specularGlossinessTexture", _specularGlossinessTexture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -76,6 +115,8 @@ namespace SharpGLTF.Schema2
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

File diff suppressed because it is too large
+ 553 - 32
src/SharpGLTF.Core/Schema2/Generated/gltf.g.cs


+ 73 - 4
src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_instance_features.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.Tiles3D
 {
 	using Collections;
@@ -37,6 +42,37 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class MeshExtInstanceFeatureID : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "featureId";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "attribute";
+			yield return "featureCount";
+			yield return "label";
+			yield return "nullFeatureId";
+			yield return "propertyTable";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "attribute": value = FIELDINFO.From("attribute",this, instance => instance._attribute); return true;
+				case "featureCount": value = FIELDINFO.From("featureCount",this, instance => instance._featureCount); return true;
+				case "label": value = FIELDINFO.From("label",this, instance => instance._label); return true;
+				case "nullFeatureId": value = FIELDINFO.From("nullFeatureId",this, instance => instance._nullFeatureId); return true;
+				case "propertyTable": value = FIELDINFO.From("propertyTable",this, instance => instance._propertyTable); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32? _attribute;
 		
 		private const Int32 _featureCountMinimum = 1;
@@ -50,8 +86,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		private const Int32 _propertyTableMinimum = 0;
 		private Int32? _propertyTable;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "attribute", _attribute);
@@ -61,7 +100,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "propertyTable", _propertyTable);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -74,6 +113,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -86,17 +127,43 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class MeshExtInstanceFeatures : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "EXT_instance_features";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "featureIds";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "featureIds": value = FIELDINFO.From("featureIds",this, instance => instance._featureIds); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _featureIdsMinItems = 1;
 		private ChildrenList<MeshExtInstanceFeatureID,MeshExtInstanceFeatures> _featureIds;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "featureIds", _featureIds, _featureIdsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -105,6 +172,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 105 - 6
src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_mesh_features.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.Tiles3D
 {
 	using Collections;
@@ -37,17 +42,43 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class MeshExtMeshFeatureIDTexture : TextureInfo
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "featureIdTexture";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "channels";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "channels": value = FIELDINFO.From("channels",this, instance => instance._channels); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _channelsMinItems = 1;
 		private List<Int32> _channels;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "channels", _channels, _channelsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -56,6 +87,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -68,6 +101,39 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class MeshExtMeshFeatureID : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "featureId";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "attribute";
+			yield return "featureCount";
+			yield return "label";
+			yield return "nullFeatureId";
+			yield return "propertyTable";
+			yield return "texture";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "attribute": value = FIELDINFO.From("attribute",this, instance => instance._attribute); return true;
+				case "featureCount": value = FIELDINFO.From("featureCount",this, instance => instance._featureCount); return true;
+				case "label": value = FIELDINFO.From("label",this, instance => instance._label); return true;
+				case "nullFeatureId": value = FIELDINFO.From("nullFeatureId",this, instance => instance._nullFeatureId); return true;
+				case "propertyTable": value = FIELDINFO.From("propertyTable",this, instance => instance._propertyTable); return true;
+				case "texture": value = FIELDINFO.From("texture",this, instance => instance._texture); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32? _attribute;
 		
 		private const Int32 _featureCountMinimum = 1;
@@ -83,8 +149,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private MeshExtMeshFeatureIDTexture _texture;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "attribute", _attribute);
@@ -95,7 +164,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializePropertyObject(writer, "texture", _texture);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -109,6 +178,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -121,17 +192,43 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class MeshExtMeshFeatures : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "EXT_mesh_features";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "featureIds";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "featureIds": value = FIELDINFO.From("featureIds",this, instance => instance._featureIds); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _featureIdsMinItems = 1;
 		private ChildrenList<MeshExtMeshFeatureID,MeshExtMeshFeatures> _featureIds;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "featureIds", _featureIds, _featureIdsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -140,6 +237,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 37 - 2
src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_structural_metadata_primitive.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.Tiles3D
 {
 	using Collections;
@@ -37,21 +42,49 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class ExtStructuralMetadataMeshPrimitive : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "EXT_structural_metadata";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "propertyAttributes";
+			yield return "propertyTextures";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "propertyAttributes": value = FIELDINFO.From("propertyAttributes",this, instance => instance._propertyAttributes); return true;
+				case "propertyTextures": value = FIELDINFO.From("propertyTextures",this, instance => instance._propertyTextures); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _propertyAttributesMinItems = 1;
 		private List<Int32> _propertyAttributes;
 		
 		private const int _propertyTexturesMinItems = 1;
 		private List<Int32> _propertyTextures;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "propertyAttributes", _propertyAttributes, _propertyAttributesMinItems);
 			SerializeProperty(writer, "propertyTextures", _propertyTextures, _propertyTexturesMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -61,6 +94,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 473 - 24
src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_ext_structural_metadata_root.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.Tiles3D
 {
 	using Collections;
@@ -101,6 +106,59 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class StructuralMetadataClassProperty : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "property";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "array";
+			yield return "componentType";
+			yield return "count";
+			yield return "default";
+			yield return "description";
+			yield return "enumType";
+			yield return "max";
+			yield return "min";
+			yield return "name";
+			yield return "noData";
+			yield return "normalized";
+			yield return "offset";
+			yield return "required";
+			yield return "scale";
+			yield return "semantic";
+			yield return "type";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "array": value = FIELDINFO.From("array",this, instance => instance._array ?? false); return true;
+				case "componentType": value = FIELDINFO.From("componentType",this, instance => instance._componentType); return true;
+				case "count": value = FIELDINFO.From("count",this, instance => instance._count); return true;
+				case "default": value = FIELDINFO.From("default",this, instance => instance._default); return true;
+				case "description": value = FIELDINFO.From("description",this, instance => instance._description); return true;
+				case "enumType": value = FIELDINFO.From("enumType",this, instance => instance._enumType); return true;
+				case "max": value = FIELDINFO.From("max",this, instance => instance._max); return true;
+				case "min": value = FIELDINFO.From("min",this, instance => instance._min); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "noData": value = FIELDINFO.From("noData",this, instance => instance._noData); return true;
+				case "normalized": value = FIELDINFO.From("normalized",this, instance => instance._normalized ?? false); return true;
+				case "offset": value = FIELDINFO.From("offset",this, instance => instance._offset); return true;
+				case "required": value = FIELDINFO.From("required",this, instance => instance._required ?? false); return true;
+				case "scale": value = FIELDINFO.From("scale",this, instance => instance._scale); return true;
+				case "semantic": value = FIELDINFO.From("semantic",this, instance => instance._semantic); return true;
+				case "type": value = FIELDINFO.From("type",this, instance => instance._type); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private static readonly Boolean _arrayDefault = false;
 		private Boolean? _array = _arrayDefault;
 		
@@ -137,8 +195,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private ElementType _type;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "array", _array, _arrayDefault);
@@ -159,7 +220,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializePropertyEnumSymbol<ElementType>(writer, "type", _type);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -183,6 +244,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -195,14 +258,44 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class StructuralMetadataClass : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "class";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "description";
+			yield return "name";
+			yield return "properties";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "description": value = FIELDINFO.From("description",this, instance => instance._description); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "properties": value = FIELDINFO.From("properties",this, instance => instance._properties); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _description;
 		
 		private String _name;
 		
 		private ChildrenDictionary<StructuralMetadataClassProperty,StructuralMetadataClass> _properties;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "description", _description);
@@ -210,7 +303,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "properties", _properties);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -221,6 +314,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -233,14 +328,44 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class StructuralMetadataEnumValue : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "value";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "description";
+			yield return "name";
+			yield return "value";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "description": value = FIELDINFO.From("description",this, instance => instance._description); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "value": value = FIELDINFO.From("value",this, instance => instance._value); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _description;
 		
 		private String _name;
 		
 		private Int32 _value;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "description", _description);
@@ -248,7 +373,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "value", _value);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -259,6 +384,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -271,6 +398,35 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class StructuralMetadataEnum : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "enum";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "description";
+			yield return "name";
+			yield return "valueType";
+			yield return "values";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "description": value = FIELDINFO.From("description",this, instance => instance._description); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "valueType": value = FIELDINFO.From("valueType",this, instance => instance._valueType ?? IntegerType.UINT16); return true;
+				case "values": value = FIELDINFO.From("values",this, instance => instance._values); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _description;
 		
 		private String _name;
@@ -281,8 +437,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		private const int _valuesMinItems = 1;
 		private ChildrenList<StructuralMetadataEnumValue,StructuralMetadataEnum> _values;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "description", _description);
@@ -291,7 +450,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "values", _values, _valuesMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -303,6 +462,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -315,6 +476,39 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class StructuralMetadataSchema : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "schema";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "classes";
+			yield return "description";
+			yield return "enums";
+			yield return "id";
+			yield return "name";
+			yield return "version";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "classes": value = FIELDINFO.From("classes",this, instance => instance._classes); return true;
+				case "description": value = FIELDINFO.From("description",this, instance => instance._description); return true;
+				case "enums": value = FIELDINFO.From("enums",this, instance => instance._enums); return true;
+				case "id": value = FIELDINFO.From("id",this, instance => instance._id); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "version": value = FIELDINFO.From("version",this, instance => instance._version); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private ChildrenDictionary<StructuralMetadataClass,StructuralMetadataSchema> _classes;
 		
 		private String _description;
@@ -327,8 +521,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private String _version;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "classes", _classes);
@@ -339,7 +536,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "version", _version);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -353,6 +550,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -365,6 +564,45 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class PropertyTableProperty : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "property";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "arrayOffsetType";
+			yield return "arrayOffsets";
+			yield return "max";
+			yield return "min";
+			yield return "offset";
+			yield return "scale";
+			yield return "stringOffsetType";
+			yield return "stringOffsets";
+			yield return "values";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "arrayOffsetType": value = FIELDINFO.From("arrayOffsetType",this, instance => instance._arrayOffsetType ?? ArrayOffsetType.UINT32); return true;
+				case "arrayOffsets": value = FIELDINFO.From("arrayOffsets",this, instance => instance._arrayOffsets); return true;
+				case "max": value = FIELDINFO.From("max",this, instance => instance._max); return true;
+				case "min": value = FIELDINFO.From("min",this, instance => instance._min); return true;
+				case "offset": value = FIELDINFO.From("offset",this, instance => instance._offset); return true;
+				case "scale": value = FIELDINFO.From("scale",this, instance => instance._scale); return true;
+				case "stringOffsetType": value = FIELDINFO.From("stringOffsetType",this, instance => instance._stringOffsetType ?? ArrayOffsetType.UINT32); return true;
+				case "stringOffsets": value = FIELDINFO.From("stringOffsets",this, instance => instance._stringOffsets); return true;
+				case "values": value = FIELDINFO.From("values",this, instance => instance._values); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const ArrayOffsetType _arrayOffsetTypeDefault = ArrayOffsetType.UINT32;
 		private ArrayOffsetType? _arrayOffsetType = _arrayOffsetTypeDefault;
 		
@@ -385,8 +623,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private Int32 _values;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializePropertyEnumSymbol<ArrayOffsetType>(writer, "arrayOffsetType", _arrayOffsetType, _arrayOffsetTypeDefault);
@@ -400,7 +641,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "values", _values);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -417,6 +658,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -429,6 +672,35 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class PropertyTable : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "propertyTable";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "class";
+			yield return "count";
+			yield return "name";
+			yield return "properties";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "class": value = FIELDINFO.From("class",this, instance => instance._class); return true;
+				case "count": value = FIELDINFO.From("count",this, instance => instance._count); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "properties": value = FIELDINFO.From("properties",this, instance => instance._properties); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _class;
 		
 		private const Int32 _countMinimum = 1;
@@ -438,8 +710,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private ChildrenDictionary<PropertyTableProperty,PropertyTable> _properties;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "class", _class);
@@ -448,7 +723,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "properties", _properties);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -460,6 +735,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -472,6 +749,37 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class PropertyTextureProperty : TextureInfo
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "propertyTexture";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "channels";
+			yield return "max";
+			yield return "min";
+			yield return "offset";
+			yield return "scale";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "channels": value = FIELDINFO.From("channels",this, instance => instance._channels); return true;
+				case "max": value = FIELDINFO.From("max",this, instance => instance._max); return true;
+				case "min": value = FIELDINFO.From("min",this, instance => instance._min); return true;
+				case "offset": value = FIELDINFO.From("offset",this, instance => instance._offset); return true;
+				case "scale": value = FIELDINFO.From("scale",this, instance => instance._scale); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _channelsMinItems = 1;
 		private List<Int32> _channels;
 		
@@ -483,8 +791,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private System.Text.Json.Nodes.JsonNode _scale;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "channels", _channels, _channelsMinItems);
@@ -494,7 +805,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "scale", _scale);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -507,6 +818,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -519,14 +832,44 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class PropertyTexture : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "propertyTexture";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "class";
+			yield return "name";
+			yield return "properties";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "class": value = FIELDINFO.From("class",this, instance => instance._class); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "properties": value = FIELDINFO.From("properties",this, instance => instance._properties); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _class;
 		
 		private String _name;
 		
 		private ChildrenDictionary<PropertyTextureProperty,PropertyTexture> _properties;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "class", _class);
@@ -534,7 +877,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "properties", _properties);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -545,6 +888,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -557,6 +902,37 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class PropertyAttributeProperty : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "property";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "attribute";
+			yield return "max";
+			yield return "min";
+			yield return "offset";
+			yield return "scale";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "attribute": value = FIELDINFO.From("attribute",this, instance => instance._attribute); return true;
+				case "max": value = FIELDINFO.From("max",this, instance => instance._max); return true;
+				case "min": value = FIELDINFO.From("min",this, instance => instance._min); return true;
+				case "offset": value = FIELDINFO.From("offset",this, instance => instance._offset); return true;
+				case "scale": value = FIELDINFO.From("scale",this, instance => instance._scale); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _attribute;
 		
 		private System.Text.Json.Nodes.JsonNode _max;
@@ -567,8 +943,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private System.Text.Json.Nodes.JsonNode _scale;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "attribute", _attribute);
@@ -578,7 +957,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "scale", _scale);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -591,6 +970,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -603,14 +984,44 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class PropertyAttribute : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "propertyAttribute";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "class";
+			yield return "name";
+			yield return "properties";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "class": value = FIELDINFO.From("class",this, instance => instance._class); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "properties": value = FIELDINFO.From("properties",this, instance => instance._properties); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _class;
 		
 		private String _name;
 		
 		private ChildrenDictionary<PropertyAttributeProperty,PropertyAttribute> _properties;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "class", _class);
@@ -618,7 +1029,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "properties", _properties);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -629,6 +1040,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -641,6 +1054,37 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class EXTStructuralMetadataRoot : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "EXT_structural_metadata";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "propertyAttributes";
+			yield return "propertyTables";
+			yield return "propertyTextures";
+			yield return "schema";
+			yield return "schemaUri";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "propertyAttributes": value = FIELDINFO.From("propertyAttributes",this, instance => instance._propertyAttributes); return true;
+				case "propertyTables": value = FIELDINFO.From("propertyTables",this, instance => instance._propertyTables); return true;
+				case "propertyTextures": value = FIELDINFO.From("propertyTextures",this, instance => instance._propertyTextures); return true;
+				case "schema": value = FIELDINFO.From("schema",this, instance => instance._schema); return true;
+				case "schemaUri": value = FIELDINFO.From("schemaUri",this, instance => instance._schemaUri); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _propertyAttributesMinItems = 1;
 		private ChildrenList<PropertyAttribute,EXTStructuralMetadataRoot> _propertyAttributes;
 		
@@ -654,8 +1098,11 @@ namespace SharpGLTF.Schema2.Tiles3D
 		
 		private String _schemaUri;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "propertyAttributes", _propertyAttributes, _propertyAttributesMinItems);
@@ -665,7 +1112,7 @@ namespace SharpGLTF.Schema2.Tiles3D
 			SerializeProperty(writer, "schemaUri", _schemaUri);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -678,6 +1125,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 35 - 2
src/SharpGLTF.Ext.3DTiles/Schema2/Generated/Ext.CESIUM_primitive_outline.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.Tiles3D
 {
 	using Collections;
@@ -37,16 +42,42 @@ namespace SharpGLTF.Schema2.Tiles3D
 	partial class CesiumPrimitiveOutline : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "CESIUM_primitive_outline";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "indices";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "indices": value = FIELDINFO.From("indices",this, instance => instance._indices); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Int32? _indices;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "indices", _indices);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -55,6 +86,8 @@ namespace SharpGLTF.Schema2.Tiles3D
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 37 - 2
src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiNodeArticulations.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.AGI
 {
 	using Collections;
@@ -37,19 +42,47 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiNodeArticulations : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "AGI_articulations";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "articulationName";
+			yield return "isAttachPoint";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "articulationName": value = FIELDINFO.From("articulationName",this, instance => instance._articulationName); return true;
+				case "isAttachPoint": value = FIELDINFO.From("isAttachPoint",this, instance => instance._isAttachPoint); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _articulationName;
 		
 		private Boolean? _isAttachPoint;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "articulationName", _articulationName);
 			SerializeProperty(writer, "isAttachPoint", _isAttachPoint);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -59,6 +92,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 37 - 2
src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiNodeStkMetadata.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.AGI
 {
 	using Collections;
@@ -37,19 +42,47 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiNodeStkMetadata : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "AGI_stk_metadata";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "noObscuration";
+			yield return "solarPanelGroupName";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "noObscuration": value = FIELDINFO.From("noObscuration",this, instance => instance._noObscuration); return true;
+				case "solarPanelGroupName": value = FIELDINFO.From("solarPanelGroupName",this, instance => instance._solarPanelGroupName); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Boolean? _noObscuration;
 		
 		private String _solarPanelGroupName;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "noObscuration", _noObscuration);
 			SerializeProperty(writer, "solarPanelGroupName", _solarPanelGroupName);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -59,6 +92,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 107 - 6
src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiRootArticulations.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.AGI
 {
 	using Collections;
@@ -55,6 +60,37 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiArticulationStage : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "stage";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "initialValue";
+			yield return "maximumValue";
+			yield return "minimumValue";
+			yield return "name";
+			yield return "type";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "initialValue": value = FIELDINFO.From("initialValue",this, instance => instance._initialValue); return true;
+				case "maximumValue": value = FIELDINFO.From("maximumValue",this, instance => instance._maximumValue); return true;
+				case "minimumValue": value = FIELDINFO.From("minimumValue",this, instance => instance._minimumValue); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "type": value = FIELDINFO.From("type",this, instance => instance._type); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private Double _initialValue;
 		
 		private Double _maximumValue;
@@ -65,8 +101,11 @@ namespace SharpGLTF.Schema2.AGI
 		
 		private AgiArticulationTransformType _type;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "initialValue", _initialValue);
@@ -76,7 +115,7 @@ namespace SharpGLTF.Schema2.AGI
 			SerializePropertyEnumSymbol<AgiArticulationTransformType>(writer, "type", _type);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -89,6 +128,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -101,6 +142,33 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiArticulation : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "articulation";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "name";
+			yield return "pointingVector";
+			yield return "stages";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				case "pointingVector": value = FIELDINFO.From("pointingVector",this, instance => instance._pointingVector); return true;
+				case "stages": value = FIELDINFO.From("stages",this, instance => instance._stages); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private String _name;
 		
 		private Vector3? _pointingVector;
@@ -108,8 +176,11 @@ namespace SharpGLTF.Schema2.AGI
 		private const int _stagesMinItems = 1;
 		private ChildrenList<AgiArticulationStage,AgiArticulation> _stages;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "name", _name);
@@ -117,7 +188,7 @@ namespace SharpGLTF.Schema2.AGI
 			SerializeProperty(writer, "stages", _stages, _stagesMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -128,6 +199,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -140,17 +213,43 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiRootArticulations : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "AGI_articulations";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "articulations";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "articulations": value = FIELDINFO.From("articulations",this, instance => instance._articulations); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _articulationsMinItems = 1;
 		private ChildrenList<AgiArticulation,AgiRootArticulations> _articulations;
 		
+		#endregion
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		#region serialization
+	
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "articulations", _articulations, _articulationsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -159,6 +258,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

+ 67 - 4
src/SharpGLTF.Ext.Agi/Schema2/generated/ext.AgiRootStkMetadata.g.cs

@@ -23,6 +23,11 @@ using System.Text;
 using System.Numerics;
 using System.Text.Json;
 
+using JSONREADER = System.Text.Json.Utf8JsonReader;
+using JSONWRITER = System.Text.Json.Utf8JsonWriter;
+using FIELDINFO = SharpGLTF.Reflection.FieldInfo;
+
+
 namespace SharpGLTF.Schema2.AGI
 {
 	using Collections;
@@ -37,21 +42,49 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiStkSolarPanelGroup : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "solarPanelGroup";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "efficiency";
+			yield return "name";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "efficiency": value = FIELDINFO.From("efficiency",this, instance => instance._efficiency); return true;
+				case "name": value = FIELDINFO.From("name",this, instance => instance._name); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const Double _efficiencyMinimum = 0;
 		private const Double _efficiencyMaximum = 100;
 		private Double _efficiency;
 		
 		private String _name;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "efficiency", _efficiency);
 			SerializeProperty(writer, "name", _name);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -61,6 +94,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 	/// <summary>
@@ -73,17 +108,43 @@ namespace SharpGLTF.Schema2.AGI
 	partial class AgiRootStkMetadata : ExtraProperties
 	{
 	
+		#region reflection
+	
+		public const string SCHEMANAME = "AGI_stk_metadata";
+		protected override string GetSchemaName() => SCHEMANAME;
+	
+		protected override IEnumerable<string> ReflectFieldsNames()
+		{
+			yield return "solarPanelGroups";
+			foreach(var f in base.ReflectFieldsNames()) yield return f;
+		}
+		protected override bool TryReflectField(string name, out FIELDINFO value)
+		{
+			switch(name)
+			{
+				case "solarPanelGroups": value = FIELDINFO.From("solarPanelGroups",this, instance => instance._solarPanelGroups); return true;
+				default: return base.TryReflectField(name, out value);
+			}
+		}
+	
+		#endregion
+	
+		#region data
+	
 		private const int _solarPanelGroupsMinItems = 1;
 		private ChildrenList<AgiStkSolarPanelGroup,AgiRootStkMetadata> _solarPanelGroups;
 		
+		#endregion
+	
+		#region serialization
 	
-		protected override void SerializeProperties(Utf8JsonWriter writer)
+		protected override void SerializeProperties(JSONWRITER writer)
 		{
 			base.SerializeProperties(writer);
 			SerializeProperty(writer, "solarPanelGroups", _solarPanelGroups, _solarPanelGroupsMinItems);
 		}
 	
-		protected override void DeserializeProperty(string jsonPropertyName, ref Utf8JsonReader reader)
+		protected override void DeserializeProperty(string jsonPropertyName, ref JSONREADER reader)
 		{
 			switch (jsonPropertyName)
 			{
@@ -92,6 +153,8 @@ namespace SharpGLTF.Schema2.AGI
 			}
 		}
 	
+		#endregion
+	
 	}
 
 }

Some files were not shown because too many files changed in this diff